Nộp bài | Các bài nộp | Làm tốt nhất | Về danh sách bài |
MARBLE - A Marble Game |
English | Vietnamese |
Bắn bi
Trong những ngày hè rảnh rỗi, ktuan thường chơi bắn bi trên một bảng hình vuông gồm NxN ô vuông nhỏ. Trò chơi được thực hiện như sau:
- Ban đầu, ktuan đặt K vật cản vào K ô vuông của bảng.
- Sau đó, ktuan thực hiện lần lượt Q lượt chơi. Ở lượt chơi thứ i, ktuan lần lượt bắn Di viên bi từ ngoài bảng vào một trong 4 đường biên của bảng. Kích thước của mỗi viên bi đúng bằng kích thước của một ô vuông nhỏ. Viên bi sẽ đi qua các ô thuộc cùng một hàng / cột cho đến khi đi ra ngoài bảng hoặc gặp một vật cản hay viên bi khác. Nếu có vật cản hay viên bi khác ở ngay ô đầu tiên thì viên bi đó không được đưa vào bảng.
- Ở mỗi lượt bắn, ktuan ghi lại tổng số ô mà các viên bi đã đi qua.
Bạn hãy viết chương trình mô phỏng lại trò chơi và với mỗi lượt bắn, in ra tổng số ô mà các viên bi của lượt bắn đó đã đi qua.
Dữ liệu
- Dòng đầu ghi 3 số N, K, Q.
- K dòng sau, mỗi dòng ghi một cặp số (u,v) thể hiện toạ độ (dòng, cột) của một vật cản.
- Q dòng sau, mỗi dòng ghi 4 giá trị c, D, u, v. Ký tự c có thể là 'L', 'R', 'T', hoặc 'B' cho biết viên bi được đưa vào từ biên trái, phải, trên hoặc dưới của bảng. (u,v) thể hiện toạ độ ô đầu tiên mà viên bi được đưa vào. Đây phải là một ô nằm trên biên của bảng ứng với ký tự c. D là số lượng viên bi sẽ bắn ở lượt chơi này.
Kết quả
- Với mỗi lượt chơi, in ra tổng số ô mà các viên bi của lượt đó đã đi qua
Ví dụ
Dữ liệu
5 1 3
3 3
L 2 3 1
T 1 1 1
B 5 5 5
Kết quả
3
2
25
Giải thích
- Viên bi đầu tiên của lượt 1 sẽ đi qua 2 ô (3,1) và (3,2) trước ghi gặp vật cản ở ô (3,3)
- Viên bi tiếp theo của lượt 1 sẽ đi qua ô (3,1) trước khi gặp viên bi ở ô (3,2). Vậy tổng số ô bị đi qua ở lượt này là 3.
- Viên bi đầu tiên của lượt 2 sẽ đi qua 2 ô (1,1) và (2,1) trước khi gặp viên bi ở ô (3,1).
- Mỗi viên bi của lượt cuối cùng đều không gặp vật cản và sẽ đi ra ngoài bảng sau khi đi qua 5 ô.
Giới hạn
- N ≤ 50000, K ≤ 10, Q ≤ 100000
- Trong 1/3 số test, N và Q không vượt quá 1000.
Được gửi lên bởi: | Jimmy |
Ngày: | 2009-07-17 |
Thời gian chạy: | 0.600s-2s |
Giới hạn mã nguồn: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Ngôn ngữ cho phép: | CPP JAVA PAS-FPC |
Nguồn bài: | VNOI Marathon 2009 Round 2 Problem Setter: Khúc Anh Tuấn |
hide comments
2009-07-18 20:42:59
Công nhận, vào những ngày này, anh ktuan rảnh rỗi thật :D, toàn chơi những trò khủng bố :D. |
|
2009-07-18 16:07:36 AnhDQ
@Nguyễn Quốc Quân: but the limitation of D affects the limitation of the result, but the result is not BigInt so you can calculate yourself the limitation of D ;) Last edit: 2009-07-18 16:08:18 |
|
2009-07-18 16:05:17 Nguyễn Quốc Quân
@ VOJ team: But my program need the limitation of D :(( |
|
2009-07-18 14:54:47 terukawada
có thể cho thêm test ko ạ Last edit: 2009-07-18 14:56:05 |
|
2009-07-18 14:35:29 Mệt
D có thể = 0 ko ạ? |
|
2009-07-18 01:45:27 VOJ Team
The limitation of D in this problem is unknown. However, I'm sure that you don't need BigInteger for this problem. |
|
2009-07-18 01:28:51 Nguyễn Xuân Khánh
Tổng số viên bi được bắn có bị giới hạn không ? |