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

Cắt kính

Đề bài

Mô tả

Leonid có một tấm kính hình chữ nhật kích thước w mm × h mm. Anh thực hiện n nhát cắt, mỗi nhát là một đường thẳng đứng hoặc nằm ngang xuyên qua toàn bộ tấm kính.

Các mảnh kính sau khi cắt không bị dịch chuyển, nên mỗi nhát cắt mới sẽ chia đôi mọi mảnh mà nó đi qua. Sau mỗi nhát cắt, hãy cho biết diện tích của mảnh kính lớn nhất hiện có.

Dữ liệu vào

  • Dòng đầu chứa ba số nguyên w, h, n.
  • n dòng tiếp theo, mỗi dòng mô tả một nhát cắt:
    • H y — nhát cắt ngang tại khoảng cách y mm tính từ cạnh dưới của tấm kính ban đầu.
    • V x — nhát cắt dọc tại khoảng cách x mm tính từ cạnh trái của tấm kính ban đầu.

Dữ liệu ra

In ra n dòng, dòng thứ i là diện tích (tính bằng mm2) của mảnh kính lớn nhất sau nhát cắt thứ i.

Ràng buộc

  • 2w,h200000
  • 1n200000
  • 1yh1 với nhát cắt ngang, 1xw1 với nhát cắt dọc
  • Không có hai nhát cắt nào trùng nhau

Ví dụ

Input Output Giải thích
4 3 4
H 2
V 2
V 3
V 1
8
4
4
2
Nhát 1 chia chiều cao 3 thành 2 và 1, mảnh lớn nhất là 4×2=8. Nhát 2 chia chiều rộng 4 thành 2 và 2, cho 2×2=4. Nhát 3 cắt tại x=3 chỉ chia đoạn bên phải thành 1 và 1, đoạn rộng nhất vẫn là 2 nên đáp án không đổi. Nhát 4 làm mọi đoạn ngang còn rộng 1, đáp án là 1×2=2.
7 6 5
H 4
V 3
V 5
H 2
V 1
28
16
12
6
4
Sau nhát 3, chiều rộng bị chia thành các đoạn 3, 2, 2 còn chiều cao là 4 và 2, nên đáp án là 3×4=12. Sau nhát 5, chiều rộng chia thành 1, 2, 2, 2 và chiều cao thành 2, 2, 2, cho 2×2=4.

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 csc 6.12.0.200 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 kotlinc 2.4.10 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 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 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0