Nộp bài | Các bài nộp | Làm tốt nhất | Về danh sách bài |
BCSKAKAC - Quân mã |
Mirko và Slavko chơi một trò chơi mới phổ biển với quân mã trên bàn cờ. Bàn cờ có kích thước ô. Cho vị trí ô ban đầu của quân mã, Mirko sẽ thực hiện T bước di chuyển. Sau đó, Slavko sẽ phải chỉ ra tất cả các vị trí mà sau T bước di chuyển, quân mã có thể đứng.
Mỗi ô của bàn cờ được đánh một số nguyên K, quân mã chỉ có thể di chuyển vào ô này nếu bước đi là bước đi thứ 0,K,2K,3K,… Mỗi bước đi quân mã sẽ phải di chuyển sang một ô khác theo cách đi của quân mã trên bàn cờ.
Hãy giúp Slavko xác định vị trí quân mã có thể đứng sau T bước di chuyển.
Dữ liệu:
Dòng đầu chứa số 2 số nguyên dương, N (3≤N≤30) là kích thước của bàn cờ và số T (1≤T≤1 000 000) là số bước Mirko phải di chuyển.
Dòng thứ hai chứa 2 số nguyên dương X và Y (1≤X,Y≤N) , vị trí hàng và cột của quân mã ban đầu.
N dòng tiếp theo, mỗi dòng chứa N số nguyên dương bé hơn 109 (1 tỉ), là giá trị K của ô tương ứng.
Kết quả:
Dòng đầu chứa số M, số ô mà quân mã có thể đứng sau T bước di chuyển.
M dòng tiếp theo chứa vị trí các ô có thể đứng, sắp xếp theo thứ tự hàng tăng dần, với 2 ô cùng hàng, sắp xếp theo thứ tự cột tăng dần.
40% số test có T bé hơn 50 000.
Ví dụ:
INPUT |
OUTPUT |
3 2 1 1 1 3 2 2 3 2 3 1 1 |
2 1 1 1 3 |
Giải thích test số 1:
‘K’ : Vị trí quân mã có thể đứng.
‘.’ : Các ô có thể di chuyển vào.
‘#’: Các ô không thể di chuyển vào.
Ban đầu |
Bước 1 |
Bước 2 |
K . . . . . . . . |
. # # # # # # K . |
K # K . # . # . . |
INPUT |
OUTPUT |
5 6 2 3 4 5 3 2 3 1 3 4 3 1 3 4 1 3 2 4 4 2 1 3 4 6 4 9 2 |
5 1 4 2 1 2 5 4 5 5 2 |
INPUT |
OUTPUT |
3 3 2 2 3 6 4 2 2 5 1 3 7 |
0 |
Được gửi lên bởi: | adm |
Ngày: | 2011-10-24 |
Thời gian chạy: | 0.200s-1s |
Giới hạn mã nguồn: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Ngôn ngữ cho phép: | ASM32-GCC ASM32 MAWK BC C CSHARP C++ 4.3.2 CPP CPP14 COFFEE LISP sbcl DART FORTH GO JAVA JS-RHINO JS-MONKEY KTLN OCT PAS-GPC PAS-FPC PERL PERL6 PROLOG PYTHON PYTHON3 PY_NBC R RACKET SQLITE SWIFT UNLAMBDA |