Đi Dự Tiệc COW

Đề bài

Mô tả

Có N con bò đánh số từ 1 đến N, mỗi con có một bạn thân ai. Trong M đêm liên tiếp, các con bò tổ chức tiệc loại "C", "O", hoặc "W".

Đêm thứ i, bò ci tổ chức tiệc loại vi. Kể từ đêm đó trở đi, chuồng của bò ci luôn có tiệc: loại tiệc tại đó giữ nguyên là vi cho đến khi chính bò ci tổ chức một loại khác. Bò tổ chức tiệc thì tham dự chính tiệc của mình.

Mỗi đêm, các bò không tổ chức tiệc sẽ kiểm tra chuồng bạn thân. Nếu bạn thân không có tiệc, bò đi theo bạn thân (và bạn thân đó cũng đi theo bạn thân của mình, v.v.). Bò không thể đến tiệc nào (do chuỗi bạn thân quay thành vòng mà không gặp tiệc nào) sẽ bỏ cuộc và không tham dự tiệc nào.

Sau mỗi đêm, đếm số bò tham dự mỗi loại tiệc (C, O, W).

Dữ liệu vào

  • Dòng 1: Số nguyên N
  • Dòng 2: N số nguyên a1,a2,…,aN (bạn thân)
  • Dòng 3: Số nguyên M
  • M dòng tiếp theo: Số nguyên ci và ký tự vi

Dữ liệu ra

  • M dòng, mỗi dòng gồm 3 số nguyên: số bò tham dự tiệc C, O, W.

Ràng buộc

  • 2≤N≤2×105
  • 1≤M≤2×105
  • 1≤ai≤N, ai≠i
  • 1≤ci≤N, vi∈{C, O, W}

Ví dụ

Input Output Giải thích
5
2 3 4 5 4
4
2 C
4 C
4 W
2 O
2 0 0
5 0 0
2 0 3
0 2 3
Đêm 1: bò 2 mở tiệc C, bò 1 đi theo bò 2, nên có 2 bò dự tiệc C. Ba bò 3, 4, 5 kẹt trong vòng 4→5→4 nên bỏ cuộc. Đêm 2: bò 4 mở thêm tiệc C, bò 3 và bò 5 đến đó, cả 5 bò đều dự tiệc C. Đêm 3: bò 4 đổi sang tiệc W, kéo theo bò 3 và bò 5. Đêm 4: bò 2 đổi sang tiệc O, kéo theo bò 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.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