아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

돌 게임

시간 제한1초메모리 제한512 MB

요약
각 차례에 제거하는 돌의 수가 직전 수의 배수여야 하는 게임에서, 베시가 필승할 수 있는 첫 수의 가짓수를 센다.
난이도

어려움10점 중 9점

유형
게임 이론, 정수론, 수학, 조합론
정답자
아직 제출이 없습니다

문제

Bessie와 Elsie가 NN (1≤N≤1051\le N\le 10^5)개의 돌 더미로 게임을 한다. ii번째 더미에는 aia_i개의 돌이 있다 (1≤i≤N1\le i\le N, 1≤ai≤1061\le a_i\le 10^6). 두 소가 번갈아 차례를 가지며, Bessie가 먼저 시작한다.

  • 먼저 Bessie가 양의 정수 s1s_1을 골라 돌이 s1s_1개 이상 있는 더미에서 돌 s1s_1개를 가져간다.
  • 그다음 Elsie가 s1s_1이 s2s_2를 나누는 양의 정수 s2s_2를 골라 돌이 s2s_2개 이상 있는 더미에서 돌 s2s_2개를 가져간다.
  • 그다음 Bessie가 s2s_2가 s3s_3을 나누는 양의 정수 s3s_3을 골라 돌이 s3s_3개 이상 있는 더미에서 돌 s3s_3개를 가져가고, 이런 식으로 이어진다.
  • 일반적으로 ii번째 차례에 가져가는 돌의 개수 sis_i는 si+1s_{i+1}을 나누어야 한다.

자기 차례에 돌을 가져가지 못하는 소가 진다.

Bessie가 승리를 보장받기 위해(Elsie가 어떤 선택을 하더라도 Bessie가 이기는 전략이 존재한다는 뜻이다) 첫 차례에 돌을 가져가는 방법의 수를 구하여라. 가져가는 돌의 개수가 다르거나 돌을 가져가는 더미가 다르면 서로 다른 방법으로 본다.

입력

첫째 줄에 NN이 주어진다.

둘째 줄에 NN개의 정수 a1,…,aNa_1,\ldots,a_N이 공백으로 구분되어 주어진다.

출력

Bessie가 승리를 보장받기 위해 첫 차례에 돌을 가져가는 방법의 수를 출력한다.

이 문제에서 다루는 정수의 크기가 크므로 64비트 정수 자료형(예: C/C++의 "long long")이 필요할 수 있다.

예제2

  1. 예제 1

    입력
    1
    7
    
    예상 출력
    4
    
  2. 예제 2

    입력
    6
    3 2 3 2 3 1
    
    예상 출력
    8