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|ij|,

tức tổng khoảng cách |ij| 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 (1q100) — 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 (1m|s|).
    • Dòng 3: m số nguyên b1,b2,,bm (0bi1225).

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=|23|=1. t1= a có t3>t1, nên b1=|13|=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í 12: 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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 GO groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0