trang chủ / đề bài / stonegam

Trò chơi đá

Đề bài

Mô tả

Bessie và Elsie chơi một trò chơi với N đống đá, đống thứ i có ai viên đá.

Bessie đi trước. Ở lượt đầu tiên, Bessie chọn một số nguyên dương s1 rồi lấy đi s1 viên đá từ một đống đang có ít nhất s1 viên.

Ở mỗi lượt sau đó, người chơi phải chọn một số nguyên dương sk là bội của số sk−1 mà đối phương vừa dùng ở lượt liền trước, rồi lấy đi sk viên đá từ một đống đang có ít nhất sk viên. Người đầu tiên không thực hiện được lượt đi của mình sẽ thua.

Cả hai chơi tối ưu. Hãy đếm số cách đi ở lượt đầu tiên của Bessie sao cho Bessie chắc chắn thắng.

Hai cách đi được coi là khác nhau nếu số viên đá lấy đi khác nhau, hoặc lấy đá từ hai đống khác nhau. Hai đống khác nhau nhưng có cùng số đá vẫn được tính là hai cách đi khác nhau.

Dữ liệu vào

  • Dòng đầu: số nguyên N.
  • Dòng thứ hai: N số nguyên a1,a2,…,aN.

Dữ liệu ra

Một số nguyên duy nhất: số cách đi thắng ở lượt đầu tiên của Bessie. Kết quả có thể vượt quá phạm vi 32 bit.

Ràng buộc

  • 1≤N≤105
  • 1≤ai≤106

Ví dụ

Input Output Giải thích
1
7
4 Bessie thắng khi lấy 4, 5, 6 hoặc 7 viên. Sau nước đi đó đống chỉ còn dưới s1 viên nên Elsie không thể lấy được bội nào của s1. Lấy 1, 2 hoặc 3 viên đều thua.
6
3 2 3 2 3 1
8 Các nước thắng: lấy 2 viên từ một trong 5 đống có ít nhất 2 viên (3 đống 3 viên và 2 đống 2 viên), hoặc lấy 3 viên từ một trong 3 đống 3 viên. Tổng cộng 5+3=8 cách.

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