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

Chọn chỉ huy

Đề bài

Mô tả

Một đội quân được mô tả bằng một đa tập hợp các số nguyên: mỗi chiến binh trong đội quân ứng với một số nguyên p gọi là tính cách của chiến binh đó. Hai chiến binh khác nhau vẫn có thể có cùng tính cách.

Một chỉ huy cũng có tính cách p và thêm một chỉ số uy tín l. Một chiến binh có tính cách x nể phục chỉ huy có tính cách p và uy tín l khi và chỉ khi

xp<l,

trong đó là phép XOR (hoặc loại trừ) trên biểu diễn nhị phân.

Ban đầu đội quân rỗng. Có q sự kiện xảy ra theo thứ tự, mỗi sự kiện thuộc một trong ba loại:

  • 1 p — một chiến binh có tính cách p gia nhập đội quân;
  • 2 p — một chiến binh có tính cách p rời khỏi đội quân (dữ liệu đảm bảo tại thời điểm đó trong đội quân có ít nhất một chiến binh như vậy);
  • 3 p l — thử tuyển một chỉ huy có tính cách p và uy tín l.

Với mỗi sự kiện loại 3, hãy cho biết có bao nhiêu chiến binh đang ở trong đội quân nể phục chỉ huy này. Bản thân sự kiện loại 3 không làm thay đổi đội quân.

Dữ liệu vào

  • Dòng đầu chứa số nguyên q — số sự kiện.
  • q dòng tiếp theo, mỗi dòng mô tả một sự kiện theo đúng một trong ba dạng 1 p, 2 p, 3 p l nêu trên.

Dữ liệu đảm bảo có ít nhất một sự kiện loại 3.

Dữ liệu ra

Với mỗi sự kiện loại 3, in ra trên một dòng riêng số chiến binh nể phục chỉ huy tương ứng.

Ràng buộc

  • 1q105
  • 1p108 với mọi loại sự kiện
  • 1l108 với sự kiện loại 3

Ví dụ

Input Output Giải thích
5
1 3
1 4
3 6 3
2 4
3 6 3
1
0
Sau hai sự kiện đầu đội quân gồm hai chiến binh có tính cách 34. Với chỉ huy p=6, l=3: 36=53 nên chiến binh 3 không nể phục, còn 46=2<3 nên chiến binh 4 nể phục, kết quả là 1. Sau khi chiến binh 4 rời đi, không còn ai nể phục chỉ huy đó nữa.
5
1 6
1 4
3 6 3
1 4
3 6 3
2
3
Với đội quân {6,4} ta có 66=0<346=2<3, nên cả hai đều nể phục. Sau khi thêm một chiến binh 4 nữa, đội quân là {6,4,4} và cả ba đều nể phục, lưu ý hai chiến binh cùng tính cách 4 được đếm riêng.

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