Nhiệm vụ trên bảng
Đề bài
Mô tả
Cho một xâu chỉ gồm các chữ cái Latin thường. Ta xây dựng một xâu bằng cách: xoá đi một số ký tự của (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 có độ dài , các vị trí đánh số từ đến . Với mỗi vị trí , đặt
tức tổng khoảng cách trên mọi vị trí mà ký tự đứng sau trong bảng chữ cái ().
Cho trước xâu và mảng , hãy tìm một xâu bất kỳ thoả mãn cả hai điều kiện đồng thời:
- nhận được từ 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ừ theo công thức trên trùng với mảng 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 () — số bộ dữ liệu.
- Mỗi bộ gồm ba dòng:
- Dòng 1: xâu (độ dài từ đến , chỉ gồm chữ cái Latin thường).
- Dòng 2: số nguyên ().
- Dòng 3: số nguyên ().
Dữ liệu ra
Với mỗi bộ, in ra một xâu 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: aac. c là ký tự lớn nhất nên . a có , nên . a có , nên . Bộ 2: chỉ một ký tự nên ; bất kỳ ký tự nào trong đều hợp lệ. Bộ 3: aba, ký tự b ở giữa nên và hai ký tự a hai bên có . Bộ 4: codeforces, có thể kiểm tra công thức khớp với . |
| 1 aaabbc 5 0 0 3 5 7 |
bbaaa | Đặt hai ký tự b vào vị trí và : khi đó vì không có ký tự nào lớn hơn phía sau. Ba ký tự a ở các vị trí đều nhỏ hơn b, nên , , . |
Bình luận