trang chủ / bài tập / parlseat

Ghế quốc hội

Đề bài

Mô tả

Một quốc hội có n ứng cử viên, đánh số từ 1 đến n. Sau khi kiểm phiếu, k ứng cử viên đứng đầu bảng sẽ được nhận ghế trong quốc hội.

Bảng kết quả được sắp xếp theo quy tắc:

  • Ứng cử viên có nhiều phiếu hơn đứng cao hơn.
  • Nếu hai ứng cử viên có số phiếu bằng nhau, người có lá phiếu cuối cùng đến sớm hơn đứng cao hơn.

Ứng cử viên có 0 phiếu không bao giờ được nhận ghế, kể cả khi lọt vào k vị trí đầu bảng. Vì vậy có thể có ít hơn k người được vào quốc hội.

m cử tri, mỗi người bỏ phiếu cho đúng một ứng cử viên (không có lựa chọn "chống tất cả", không có phiếu trắng hay phiếu hỏng). Hiện tại đã có a cử tri bỏ phiếu: cử tri thứ j bầu cho ứng cử viên gj, và các cử tri này được đánh số theo đúng thứ tự thời gian (cử tri thứ j+1 bỏ phiếu sau cử tri thứ j).

ma cử tri còn lại sẽ bỏ phiếu sau tất cả những người đã bầu, mỗi người chọn một trong n ứng cử viên tuỳ ý.

Với mỗi ứng cử viên i, hãy xác định một trong ba khả năng:

  • ri=1: chắc chắn được vào quốc hội, bất kể ma cử tri còn lại bầu thế nào.
  • ri=2: có cơ hội được vào quốc hội, tức là tồn tại một cách bầu của ma cử tri còn lại khiến i có ghế.
  • ri=3: không có cơ hội nào được vào quốc hội, bất kể ma cử tri còn lại bầu thế nào.

Dữ liệu vào

  • Dòng đầu chứa bốn số nguyên n, k, m, a: số ứng cử viên, số ghế, số cử tri và số cử tri đã bỏ phiếu.
  • Dòng thứ hai chứa a số nguyên g1,g2,,ga, trong đó gj là ứng cử viên mà cử tri thứ j đã bầu.

Dữ liệu ra

In ra n số nguyên r1,r2,,rn cách nhau bởi dấu cách, trong đó ri là kết quả của ứng cử viên thứ i theo quy ước ở trên.

Ràng buộc

  • 1kn100
  • 1m100
  • 1am
  • 1gjn

Ví dụ

Input Output Giải thích
3 1 5 3
1 3 1
2 3 2 Hiện ứng cử viên 1 có 2 phiếu, ứng cử viên 3 có 1 phiếu, còn 2 phiếu chưa bầu. Nếu cả 2 phiếu còn lại dồn cho ứng cử viên 3 thì người này có 3 phiếu và chiếm ghế duy nhất, nên ứng cử viên 1 chỉ ở mức "có cơ hội". Ứng cử viên 2 dù nhận cả 2 phiếu còn lại cũng chỉ được 2 phiếu, bằng ứng cử viên 1, nhưng phiếu cuối của người này đến muộn hơn nên vẫn xếp dưới.
3 2 5 3
1 3 1
1 2 2 Bây giờ có 2 ghế. Muốn loại ứng cử viên 1 thì phải đẩy cả hai người còn lại lên trên, tốn 2+3=5 phiếu trong khi chỉ còn 2 phiếu, nên ứng cử viên 1 chắc chắn có ghế.
3 1 5 4
1 2 1 3
1 3 3 Chỉ còn 1 phiếu. Ứng cử viên 1 đang có 2 phiếu, hai người còn lại mỗi người 1 phiếu; một phiếu lẻ không đủ để ai vượt qua ứng cử viên 1.

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.400 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.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0