Kontrollsumma | 프로그래밍의 벗 PivotOJ
PivotOJ

Kontrollsumma

시간 제한: 2000ms메모리 제한: 1024MB출처: EIO 2022-23 prelimBOJ 29833

문제

Kontrollsummad aitavad tuvastada vigu andmete edastamisel või sisestamisel. Selleks on leiutatud palju erinevaid algoritme. Siin ülesandes vaatame ühte lihtsaimat neist: arvujada (A1,A2,)(A_1, A_2, \ldots) kontrollsumma on (A1K1+A2K2++ANKN+AN+1K1+)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 K1,K2,,KNK_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 KiK_i väärtused. Ta teab ainult, et N1000N \le 1\,000 ja 1Ki91 \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

입력
3

1

0
출력
? 7 1 6

? 5 6 4

? 1 2 3

! 3 4
이 문제는 채점 준비 중입니다. 테스트 데이터가 확보되면 제출이 가능합니다.