trang chủ / đề bài / eatchoco

Thanh sô-cô-la

Đề bài

Mô tả

Một thanh sô-cô-la được biểu diễn bằng bảng n×n ô. Các cột đánh số từ 1 đến n từ trái sang phải, các hàng đánh số từ 1 đến n từ trên xuống dưới. Ô ở cột x, hàng y được ký hiệu là (x,y).

Đường chéo phụ là đường chéo đi từ góc dưới bên trái tới góc trên bên phải, tức là tập các ô (x,y) với x+y=n+1.

Đầu tiên, toàn bộ các ô nằm phía dưới đường chéo phụ (các ô có x+y>n+1) đã bị ăn hết. Phần còn lại là một tam giác gồm các ô có x+y≤n+1.

Sau đó, có q thao tác được thực hiện lần lượt. Mỗi thao tác chọn một ô (x,y) nằm trên đường chéo phụ và một hướng:

  • Hướng U (lên trên): đi từ ô (x,y) theo chiều giảm dần của hàng.
  • Hướng L (sang trái): đi từ ô (x,y) theo chiều giảm dần của cột.

Bắt đầu từ chính ô (x,y), ta ăn từng ô một theo hướng đã chọn, và dừng lại ngay khi gặp một ô đã bị ăn trước đó hoặc khi đi ra ngoài thanh sô-cô-la. Lưu ý rằng nếu bản thân ô (x,y) đã bị ăn từ trước thì thao tác đó không ăn được ô nào.

Với mỗi thao tác, hãy cho biết số ô bị ăn trong thao tác đó.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên n và q: kích thước thanh sô-cô-la và số thao tác.
  • q dòng tiếp theo, dòng thứ i chứa hai số nguyên xi, yi và một ký tự là U hoặc L, mô tả thao tác thứ i.

Dữ liệu ra

In ra q dòng, dòng thứ i là số ô bị ăn trong thao tác thứ i.

Ràng buộc

  • 1≤n≤109
  • 1≤q≤2·105
  • 1≤xi,yi≤n và xi+yi=n+1

Ví dụ

Input Output Giải thích
6 5
3 4 U
6 1 L
2 5 L
1 6 U
4 3 U
4
3
2
1
2
Thao tác 1 ăn cả cột 3 từ hàng 4 lên hàng 1, được 4 ô. Thao tác 2 đi từ (6,1) sang trái, ăn các ô (6,1),(5,1),(4,1) rồi dừng vì (3,1) đã bị ăn ở thao tác 1. Thao tác 5 đi từ (4,3) lên trên, ăn (4,3) và (4,2) rồi dừng vì (4,1) đã bị ăn ở thao tác 2.
10 6
2 9 U
10 1 U
1 10 U
8 3 L
10 1 L
6 5 U
9
1
10
6
0
2
Thao tác 4 đi từ (8,3) sang trái tới (3,3) rồi dừng vì (2,3) đã bị ăn ở thao tác 1, được 6 ô. Ở thao tác 5, ô xuất phát (10,1) đã bị ăn ở thao tác 2 nên không ăn thêm ô nào, kết quả là 0.

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