Nhiệm vụ trên bảng

Đề bài

Mô tả

Cho một xâu s chỉ gồm các chữ cái Latin thường. Ta xây dựng một xâu t bằng cách: xoá đi một số ký tự của s (có thể không xoá ký tự nào) rồi sắp xếp các ký tự còn lại theo thứ tự tuỳ ý.

Giả sử xâu t có độ dài m, các vị trí đánh số từ 1 đến m. Với mỗi vị trí i, đặt

bi=∑j:tj>ti|i−j|,

tức tổng khoảng cách |i−j| trên mọi vị trí j mà ký tự tj đứng sau ti trong bảng chữ cái ('a'<'b'<…<'z').

Cho trước xâu s và mảng b=(b1,b2,…,bm), hãy tìm một xâu t bất kỳ thoả mãn cả hai điều kiện đồng thời:

  • t nhận được từ s bằng cách xoá một số ký tự (có thể không xoá) rồi sắp xếp lại tuỳ ý.
  • Mảng dựng từ t theo công thức trên trùng với mảng b cho trước.

Dữ liệu đảm bảo luôn tồn tại lời giải. Nếu có nhiều đáp án, in ra một đáp án bất kỳ.

Dữ liệu vào

  • Dòng đầu chứa số nguyên q (1≤q≤100) — số bộ dữ liệu.
  • Mỗi bộ gồm ba dòng:
    • Dòng 1: xâu s (độ dài từ 1 đến 50, chỉ gồm chữ cái Latin thường).
    • Dòng 2: số nguyên m (1≤m≤|s|).
    • Dòng 3: m số nguyên b1,b2,…,bm (0≤bi≤1225).

Dữ liệu ra

Với mỗi bộ, in ra một xâu t thoả mãn yêu cầu trên một dòng.

Ví dụ

Input Output Giải thích
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
aac
c
aba
codeforces
Bộ 1: t= aac. t3= c là ký tự lớn nhất nên b3=0. t2= a có t3>t2, nên b2=|2−3|=1. t1= a có t3>t1, nên b1=|1−3|=2.
Bộ 2: chỉ một ký tự nên b1=0; bất kỳ ký tự nào trong s đều hợp lệ.
Bộ 3: t= aba, ký tự b ở giữa nên b2=0 và hai ký tự a hai bên có b1=b3=1.
Bộ 4: t= codeforces, có thể kiểm tra công thức khớp với b.
1
aaabbc
5
0 0 3 5 7
bbaaa Đặt hai ký tự b vào vị trí 1 và 2: khi đó b1=b2=0 vì không có ký tự nào lớn hơn phía sau. Ba ký tự a ở các vị trí 3,4,5 đều nhỏ hơn b, nên b3=2+1=3, b4=3+2=5, b5=4+3=7.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0