[F] Functional Sequence
시간 제한1초메모리 제한1024 MB
B = f^K(A)이고 f가 대각 차분 D_i = A_i - A_{i-1}을 읽을 때, 가능한 A를 1e9+7로 나눈 나머지로 복원한다.
문제
하바는 최근 학교에서 수열과 함수에 대해 배웠다. 배운 것을 바로 적용하는 성격의 하바는 아래와 같이 길이 의 수열 를 받아서 길이 의 수열 를 반환하는 함수 를 만들었다.
- 이다.
- 인 에 대해 이다.
하지만 이 함수를 가지고 놀던 하바는 함수를 여러 번 적용할 수 있다는 것을 깨닫고, 아래와 같이 길이 의 수열 를 받아서 길이 의 수열 를 반환하는 함수 를 만들었다.
- 인 에 대해 이다.
가 무엇을 의미하는지 모른다면 하단의 노트를 참고하자.
이제 조금 더 재밌는 함수를 가진 하바는 가지고 있던 수열 에 함수 를 번 적용하여 를 만들었다.
수열 와 함수를 적용한 횟수 가 주어질 때 하바가 가지고 있던 수열 를 추정해 보자.
입력
첫째 줄에는 하바가 만든 수열 의 길이 과 하바가 함수를 적용한 횟수 가 공백으로 구분되어 주어진다.
둘째 줄에는 수열 의 원소 , , , 이 공백으로 구분되어 주어진다.
출력
만약 조건을 만족하는 수열 가 존재하지 않는다면 첫째 줄에 -1을 출력한다.
만약 조건을 만족하는 수열 가 존재한다면 첫째 줄에 수열 의 각 원소 , , , 을 로 나눈 나머지를 공백으로 구분하여 출력한다.
만약 가능한 수열이 여러 가지라면 그중 아무거나 하나를 출력한다.
힌트
어떠한 함수 에 대해 은 다음과 같이 정의한다.
- 다.
- 다.