Kontrollsumma

시간 제한2초메모리 제한1024 MB

요약
알 수 없는 주기적 가중치 수열에 대해 자릿수 합 질의를 하여 가장 짧은 주기와 각 자릿수 값을 복원하는 문제로, 질의에는 1부터 9까지의 숫자만 쓴다.
난이도

보통10점 중 7점

유형
정수론, 수학, 구현
정답자
아직 제출이 없습니다

문제

Kontrollsummad aitavad tuvastada vigu andmete edastamisel või sisestamisel. Selleks on leiutatud palju erinevaid algoritme. Siin ülesandes vaatame ühte lihtsaimat neist: arvujada (A_1,A_2,…)(A\_1, A\_2, \ldots) kontrollsumma on (A_1⋅K_1+A_2⋅K_2+…+A_N⋅K_N+A_N+1⋅K_1+…) mod 10,(A\_1 \cdot K\_1 + A\_2 \cdot K\_2 + \ldots + A\_N \cdot K\_N + A\_{N+1} \cdot K\_1 + \ldots) \bmod 10, kus K_1,K_2,…,K_NK\_1, K\_2, \ldots, K\_N on mingid konstandid. Pane tähele, et jada KK käsitletakse perioodilisena: kui AA pikkus ületab KK pikkust, kasutatakse KK elemente algusest peale uuesti. Kui AA on lühem, siis jäävad mõned KK elemendid lihtsalt kasutamata.

Juku leidis süsteemi, mis kasutab eelkirjeldatud kontrollsummat. Aga ta ei tea, milline on selles süsteemis jada KK pikkus NN või selle elementide K_iK\_i väärtused. Ta teab ainult, et N≤1,000N \le 1\\,000 ja 1≤K_i≤91 \le K\_i \le 9. Juku saab teha süsteemile päringuid. Iga päring on mingi arvujada ja süsteem annab vastuseks selle jada kontrollsumma. Juku klaviatuuril on klahv 0 natuke katki ja seetõttu on seda numbrit raskem sisestada. Sellepärast sooviks ta päringutes numbrit 0 mitte kasutada.

Kirjuta Jukule programm, mis leiab jada KK pikkuse ja selle elementide väärtused. KK perioodilisuse tõttu on võimalike vastuseid lõpmata palju; väljastada neist kõige lühem.

예제1

  1. 예제 1

    입력
    
    3
    
    1
    
    0
    
    
    예상 출력
    ? 7 1 6
    
    ? 5 6 4
    
    ? 1 2 3
    
    ! 3 4