Declining Invitations

Đề bài

Mô tả

Một cuộc thi có N thí sinh, được xếp hạng từ 1 đến N, hạng càng nhỏ càng giỏi. Ban tổ chức đưa ra C tiêu chí, đánh số từ 1 đến C; mỗi thí sinh thoả mãn một số tiêu chí nào đó.

Ban tổ chức gửi lời mời bằng cách xét lần lượt các tiêu chí theo thứ tự 1,2,…,C. Khi xét tiêu chí i, họ mời fi thí sinh có hạng nhỏ nhất trong số những người thoả mãn tiêu chí i, chưa được mời và chưa từ chối. Nếu không đủ fi người như vậy thì mời hết những người có thể.

Mỗi thí sinh chỉ được mời nhiều nhất một lần; nếu một tiêu chí trước đó đã mời người nào rồi thì tiêu chí sau bỏ qua người đó.

Cho một hoán vị p1,p2,…,pN của các thí sinh, là thứ tự họ lần lượt từ chối tham dự. Với mỗi i từ 0 đến N−1, giả sử i thí sinh p1,…,pi đã từ chối (và vì thế không bao giờ được mời), hãy tính tổng hạng của những thí sinh nhận được lời mời.

Lưu ý toàn bộ quá trình mời được làm lại từ đầu ứng với mỗi giá trị i.

Dữ liệu vào

  • Dòng 1: hai số nguyên N và C.
  • Dòng 2: C số nguyên f1,f2,…,fC.
  • Dòng 3: N số nguyên p1,p2,…,pN.
  • N dòng tiếp theo: dòng thứ i gồm số nguyên ni, rồi ni số nguyên phân biệt trong [1,C] là các tiêu chí mà thí sinh hạng i thoả mãn.

Dữ liệu ra

N dòng, dòng thứ i là tổng hạng của các thí sinh được mời khi i−1 thí sinh đầu tiên trong p đã từ chối.

Ràng buộc

  • 1≤N,C≤105
  • 1≤fi≤N
  • 1≤ni≤C và ∑ni≤106

Ví dụ

Input Output Giải thích
5 1
3
5 1 3 2 4
1 1
1 1
1 1
1 1
1 1
6
6
9
6
4
Chỉ có một tiêu chí, mời 3 người, và ai cũng thoả mãn nó. Chưa ai từ chối: mời hạng 1, 2, 3, tổng 6. Sau khi 5 từ chối: vẫn mời 1, 2, 3, tổng 6. Thêm 1 từ chối: mời 2, 3, 4, tổng 9. Thêm 3 từ chối: chỉ còn 2 và 4 nên mời cả hai, tổng 6. Thêm 2 từ chối: chỉ còn 4, tổng 4.
5 4
1 1 1 1
1 2 3 4 5
1 1
2 1 2
2 2 3
2 3 4
1 4
10
14
12
9
5
Mỗi tiêu chí mời đúng một người. Ban đầu tiêu chí 1 mời hạng 1, tiêu chí 2 mời hạng 2, tiêu chí 3 mời hạng 3, tiêu chí 4 mời hạng 4, tổng 10. Khi hạng 1 từ chối, tiêu chí 1 chuyển sang hạng 2, nên tiêu chí 2 phải lấy hạng 3, tiêu chí 3 lấy hạng 4, tiêu chí 4 lấy hạng 5, tổng 14.

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