trang chủ / đề bài / voi10_taxid

Mã số thuế

Đề bài

Mô tả

Để thực hiện luật Thuế thu nhập cá nhân, Tổng cục thuế phải cấp cho mỗi người có thu nhập một mã số thuế sao cho không có hai người nào có mã số thuế trùng nhau. Tổng cục thuế quyết định chọn mã số thuế từ tập S bao gồm các biểu diễn trong hệ đếm cơ số 36 của tất cả các số nguyên dương trong phạm vi từ 1 đến n (36≤n≤1016). Để biểu diễn các chữ số trong hệ đếm cơ số 36, Tổng cục thuế sử dụng các kí tự từ 0 đến 9 và 26 chữ cái latinh từ a đến z theo quy tắc chỉ ra trong bảng 1. Một số trong hệ đếm cơ số 36 có thể hiểu là số biểu diễn trong hệ đếm cơ số q (2≤q≤36) nếu nó chỉ chứa các chữ số trong q chữ số đầu tiên trong hệ đếm cơ số 36.

Bảng 1: giá trị (hệ 10) và chữ số tương ứng trong hệ 36.

Giá trị 0..9 10 11 12 13 14 15 16 17 18 19 20 21 22
Chữ số 0..9 a b c d e f g h i j k l m
Giá trị 23 24 25 26 27 28 29 30 31 32 33 34 35
Chữ số n o p q r s t u v w x y z

Có tất cả m Cục thuế được đánh số từ 1 đến m làm nhiệm vụ duyệt hồ sơ và cấp mã số thuế (3≤m≤70).

Để việc cấp mã số thuế có thể được tiến hành song song ở tất cả các Cục thuế, trước hết Tổng cục thuế chọn dãy số nguyên c1,c2,…,ck thỏa mãn 1<c1<c2<…<ck<36, trong đó k=⌊(m−1)/2⌋ (kí hiệu ⌊α⌋ là số nguyên lớn nhất bé hơn hoặc bằng α) và sau đó tiến hành phân phối mã số thuế cho các Cục thuế như sau: đầu tiên, từ tập S lọc ra tất cả các số có thể hiểu như là số trong hệ đếm cơ số c1, chuyển cho các Cục thuế thứ nhất và thứ hai sử dụng, sau đó loại bỏ tất cả các số này khỏi tập S; tiếp đến, lọc ra tất cả các số còn lại trong S có thể hiểu như số đếm ở hệ đếm cơ số c2 chuyển cho các Cục thuế thứ 3 và thứ 4 sử dụng, sau đó loại bỏ tất cả các số này khỏi tập S; ... Cục thuế cuối cùng (nếu m lẻ) hoặc 2 Cục thuế cuối cùng (nếu m chẵn) được sử dụng các mã còn lại trong tập S.

Tại các Cục thuế, mã số thuế được cấp theo quy tắc sau: các Cục thuế với số hiệu lẻ cấp mã số thuế theo thứ tự từ nhỏ đến lớn, còn các Cục thuế với số hiệu chẵn cấp mã số thuế theo thứ tự từ lớn đến nhỏ trong tập các mã số được phân phối.

Ví dụ, với n=50, m=3 và c1=16. Ta có tập mã số thuế ban đầu S = {1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1a, 1b, 1c, 1d, 1e}. Khi đó các Cục thuế 1 và 2 được sử dụng các mã trong tập {1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1a, 1b, 1c, 1d, 1e}; Cục thuế 3 được sử dụng các mã {g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z}. Người thứ nhất đến Cục thuế 2 được cấp mã số thuế 1e, người thứ hai đến Cục thuế này được cấp mã số thuế 1d, ...

Yêu cầu: Cho ở dạng hệ đếm cơ số 10 các số nguyên dương n, m, c1,c2,…,ck, p và q. Hãy xác định mã số thuế của người thứ q ở Cục thuế p.

Dữ liệu vào

  • Dòng thứ nhất chứa các số nguyên n, m, p, q.
  • Dòng thứ hai chứa k số nguyên c1,c2,…,ck (k=⌊(m−1)/2⌋).

Các số trên một dòng được ghi cách nhau một dấu cách. Dữ liệu đảm bảo tồn tại mã số thuế.

Dữ liệu ra

Đưa ra mã số thuế tìm được (các chữ số từ a đến z viết bằng chữ thường).

Ràng buộc

  • 36≤n≤1016, 3≤m≤70, 1≤p≤m.
  • 1<c1<c2<…<ck<36.
  • Người thứ q ở Cục thuế p tồn tại.

Subtasks

  • Subtask 1 (60% số test): 36≤n≤10000.
  • Subtask 2 (40% số test): 10000<n≤1016.

Mỗi subtask gồm nhiều test, mỗi test được chấm điểm riêng.

Ví dụ

Input Output Giải thích
50 5 2 2
16 20
1d Cục thuế 2 dùng các mã có mọi chữ số nhỏ hơn c1=16 và cấp từ lớn đến nhỏ: 1e, 1d, ... (ví dụ gốc chỉ ghi c1; c2=20 được thêm vào và không ảnh hưởng đáp án).
50 3 3 5
16
k Ví dụ trong đề: Cục thuế 3 cấp g, h, i, j, k, ... từ nhỏ đến lớn.

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