Phù thủy và những con số
Nộp bài giải
Điểm:
8,00 (OI)
Giới hạn thời gian:
2.0s
Python 3
5.0s
Giới hạn bộ nhớ:
256M
Đầu vào:
stdin
Đầu ra:
stdout
Dạng bài
Ngôn ngữ cho phép
C++, Dart, Go, Groovy, Java, Javascript, Kotlin, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Typescript, Zig
Trên bảng có hai số nguyên không âm và . Hai người chơi lần lượt thực hiện nước đi; người chơi không thể đi sẽ thua. Để cho gọn, ta luôn coi (vai trò của hai số là đối xứng — luật vẫn áp dụng tương tự khi ).
Trong mỗi lượt, người đang đi được chọn một trong hai phép biến đổi sau:
- Thay bởi , với là số nguyên dương do người chơi tự chọn, miễn là (tức ). Lưu ý đây là lũy thừa , không phải tích .
- Thay bởi .
Nếu sau nước đi thì luật vẫn được áp dụng cho cặp đã sắp xếp lại (số nhỏ hơn đóng vai trò ).
Nếu một trong hai số bằng , người đang đi không có nước hợp lệ (không thể lấy phần dư theo , và phép trừ với cơ số không sinh ra giá trị mới) — người đó thua.
Giả sử cả hai cùng chơi tối ưu, hãy xác định ai thắng.
Dữ liệu vào
- Dòng đầu chứa một số nguyên — số lượng truy vấn.
- dòng tiếp theo, mỗi dòng chứa hai số nguyên và .
Dữ liệu ra
Với mỗi truy vấn, in ra một dòng duy nhất:
Firstnếu người đi trước thắng.Secondnếu người đi sau thắng.
Ràng buộc
- .
- .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 10 21 31 10 0 1 10 30 |
First Second Second First |
Truy vấn 1: từ người đi trước chuyển sang (trừ ). Đối thủ chỉ có thể đi tiếp tới , sau đó người đi trước lấy và thắng. Truy vấn 2: từ chỉ có hai trạng thái kế tiếp là và — cả hai đều là trạng thái thắng của đối thủ. Truy vấn 3: cặp không có nước đi nên người đi trước thua. Truy vấn 4: từ lấy , đối thủ rơi vào và không đi được. |
| 1 576460752303423487 2 |
First | Với cặp số rất lớn, hai bên vẫn chơi tối ưu theo cùng luật; ở đây người đi trước có chiến lược thắng. |
Bình luận