#6564. 哪位数字? (Која цифра?)

哪位数字? (Која цифра?)

题目名称:哪位数字? (Која цифра?)

来源:2022年马其顿编程竞赛 (社区与地区级赛事)

题目描述

系统中给出了 NN 个个位数字,这些数字紧挨在一起排列。你的任务是:将这 NN 个数字重新组合,构成一个最大的数

你需要输出该最大数中第 KK 位上的数字。由于会有多次查询,你需要针对多个不同的 KK 值分别输出结果。位置的计数从数字的最左端(即最高位)开始,从 1 开始编号。

提示:输入中保证至少包含一个非零数字。

数据范围

  • 20% 的分数N1000N \le 1000
  • 60% 的分数N100,000N \le 100,000
  • 100% 的分数N10,000,000N \le 10,000,000M100M \le 100

输入格式

  • 第一行:包含两个整数 NN (1N1071 \le N \le 10^7) 和 MM (1M1001 \le M \le 100)。NN 代表数字的总个数,MM 代表查询次数。
  • 第二行:给出的 NN 个数字,紧凑排列(无空格)。
  • 第三行:给出 MM 个整数 KiK_i (1KiN1 \le K_i \le N),即你需要查询的位数。

输入读取建议:由于数字是连在一起的,你可以使用 char c; 变量配合 cin >> c; 循环 NN 次来逐个读取。

输出格式

  • 在一行内输出 MM 个数字,用单个空格分隔。第 ii 个数字代表最大数中第 KiK_i 位上的数字。

限制要求

  • 时间限制:600 毫秒
  • 内存限制:4 兆字节 (4 MB)

注意:本题有极其严格(非常小)的内存限制。你的程序不能超过规定的内存使用量,否则会导致运行错误(Runtime Error)。请避免开辟大型数组。


示例

输入

3 2
454
1 3

输出

5 4

示例解释: 使用数字 4, 5, 4 能组成的所有数为 454, 445 和 544。其中最大的是 544。在 544 中,第 1 位是 5,第 3 位是 4。


版权信息

本题目自 2022 年马其顿编程竞赛 (Macedonian Programming Contests 2022) —— 社区与地区级赛项。版权归原赛事组委会所有。