Thông báo chưa đọc

Đề bài

Mô tả

Trên điện thoại có n ứng dụng. Ban đầu không có thông báo nào. Sau đó xảy ra q sự kiện theo thứ tự thời gian, mỗi sự kiện thuộc một trong ba loại:

  1. Ứng dụng x sinh ra một thông báo mới (thông báo này ở trạng thái chưa đọc).
  2. Đọc tất cả các thông báo mà ứng dụng x đã sinh ra cho tới thời điểm hiện tại (có thể đọc lại những thông báo đã đọc trước đó).
  3. Đọc t thông báo được sinh ra đầu tiên trên điện thoại, tức là các thông báo được tạo trong t sự kiện loại 1 đầu tiên (không phải t thông báo chưa đọc đầu tiên). Đảm bảo rằng trước sự kiện này đã có ít nhất t sự kiện loại 1.

Sau mỗi sự kiện, hãy cho biết số lượng thông báo đang ở trạng thái chưa đọc.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên n và q.
  • q dòng tiếp theo, mỗi dòng mô tả một sự kiện: bắt đầu bằng số nguyên typei. Nếu typei=1 hoặc typei=2 thì tiếp theo là số nguyên xi. Nếu typei=3 thì tiếp theo là số nguyên ti.

Dữ liệu ra

In ra q dòng, dòng thứ i là số thông báo chưa đọc sau sự kiện thứ i.

Ràng buộc

  • 1≤n,q≤3·105
  • 1≤typei≤3
  • 1≤xi≤n
  • 1≤ti≤q

Ví dụ

Input Output Giải thích
3 4
1 3
1 1
1 2
2 3
1
2
3
2
Ba sự kiện đầu sinh thông báo cho ứng dụng 3, 1, 2 nên có 3 thông báo chưa đọc. Sự kiện cuối đọc thông báo của ứng dụng 3, còn lại 2 chưa đọc.
4 6
1 2
1 4
1 2
3 3
1 3
1 3
1
2
3
0
1
2
Sau 3 sự kiện đầu có 3 thông báo. Sự kiện 4 đọc 3 thông báo đầu tiên, không còn thông báo chưa đọc. Hai sự kiện cuối sinh thêm 2 thông báo cho ứng dụng 3.

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