CF1367D.Task On The Board
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Polycarp wrote on the board a string s containing only lowercase Latin letters ('a'-'z'). This string is known for you and given in the input.
After that, he erased some letters from the string s , and he rewrote the remaining letters in any order. As a result, he got some new string t . You have to find it with some additional information.
Suppose that the string t has length m and the characters are numbered from left to right from 1 to m . You are given a sequence of m integers: b1,b2,…,bm , where bi is the sum of the distances ∣i−j∣ from the index i to all such indices j that tj>ti (consider that 'a'<'b'<...<'z'). In other words, to calculate bi , Polycarp finds all such indices j that the index j contains a letter that is later in the alphabet than ti and sums all the values ∣i−j∣ .
For example, if t = "abzb", then:
- since t1 ='a', all other indices contain letters which are later in the alphabet, that is: b1=∣1−2∣+∣1−3∣+∣1−4∣=1+2+3=6 ;
- since t2 ='b', only the index j=3 contains the letter, which is later in the alphabet, that is: b2=∣2−3∣=1 ;
- since t3 ='z', then there are no indexes j such that tj>ti , thus b3=0 ;
- since t4 ='b', only the index j=3 contains the letter, which is later in the alphabet, that is: b4=∣4−3∣=1 .
Thus, if t = "abzb", then b=[6,1,0,1] .
Given the string s and the array b , find any possible string t for which the following two requirements are fulfilled simultaneously:
- t is obtained from s by erasing some letters (possibly zero) and then writing the rest in any order;
- the array, constructed from the string t according to the rules above, equals to the array b specified in the input data.
输入格式
The first line contains an integer q ( 1≤q≤100 ) — the number of test cases in the test. Then q test cases follow.
Each test case consists of three lines:
- the first line contains string s , which has a length from 1 to 50 and consists of lowercase English letters;
- the second line contains positive integer m ( 1≤m≤∣s∣ ), where ∣s∣ is the length of the string s , and m is the length of the array b ;
- the third line contains the integers b1,b2,…,bm ( 0≤bi≤1225 ).
It is guaranteed that in each test case an answer exists.
输出格式
Output q lines: the k -th of them should contain the answer (string t ) to the k -th test case. It is guaranteed that an answer to each test case exists. If there are several answers, output any.
输入输出样例
输入#1
4 abac 3 2 1 0 abc 1 0 abba 3 1 0 1 ecoosdcefr 10 38 13 24 14 11 5 3 24 17 0
输出#1
aac b aba codeforces
说明/提示
In the first test case, such strings t are suitable: "aac', "aab".
In the second test case, such trings t are suitable: "a", "b", "c".
In the third test case, only the string t equals to "aba" is suitable, but the character 'b' can be from the second or third position.