만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

체크섬

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

요약
숨겨진 주기 가중치 수열의 길이 N(1000 이하)과 각 원소 K_i를 찾습니다. 0이 없는 수열로 체크섬을 질의합니다.
난이도

보통10점 중 5점

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

문제

검사 합(체크섬)은 데이터를 전송하거나 입력할 때 생기는 오류를 찾는 데 쓰인다. 이를 위해 여러 알고리즘이 고안되었다. 이 문제는 그중 가장 단순한 방법을 다룬다.

수열 (A1,A2,…)(A_1, A_2, \ldots)의 체크섬은 다음과 같이 정의된다.

(A1⋅K1+A2⋅K2+…+AN⋅KN+AN+1⋅K1+…) 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

여기서 K1,K2,…,KNK_1, K_2, \ldots, K_N은 정해진 상수이다. 수열 KK는 주기적으로 취급한다. AA의 길이가 KK보다 길면 KK의 원소를 처음부터 다시 사용한다. AA가 더 짧으면 KK의 일부 원소는 사용되지 않는다.

주쿠는 이 체크섬을 사용하는 시스템을 찾아냈다. 하지만 이 시스템의 수열 KK 길이 NN과 원소 KiK_i의 값은 알지 못한다. 알고 있는 것은 N≤1 000N \le 1\,000이고 1≤Ki≤91 \le K_i \le 9라는 사실뿐이다. 주쿠는 시스템에 질의를 보낼 수 있다. 각 질의는 숫자열이며, 시스템은 그 숫자열의 체크섬을 답으로 돌려준다. 주쿠의 키보드는 0 키가 약간 고장 나 있어 0을 입력하기 어렵다. 그래서 질의에 숫자 0을 쓰지 않으려 한다.

수열 KK의 길이와 원소 값을 구하는 프로그램을 작성하라. KK는 주기적이므로 가능한 답은 무수히 많다. 그중 가장 짧은 답을 출력하라.

예제1

  1. 예제 1

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