반복 차분
시간 제한1초메모리 제한128 MB
각 수열에서 모든 항목을 다음 항목과의 절댓값 차로 바꾸는 과정을 반복하며, 모든 값이 같아질 때까지의 반복 횟수를 세고 1000회가 넘으면 실패를 출력한다.
문제
N개의 음이 아닌 정수 으로 이루어진 리스트가 주어진다. 이 리스트를 다음 규칙에 따라 새로운 리스트로 바꾼다. 새 리스트의 번째 원소는 이며, 마지막 원소는 끝에서 앞으로 순환하여 로 정의한다.
모든 원소가 같은 정수가 될 때까지 이 치환을 몇 번 반복해야 하는지 구하여라.
예를 들어 이고 리스트가 (0, 2, 5, 11)로 시작하면, 반복 과정은 다음과 같다.
2 3 6 11
1 3 5 9
2 2 4 8
0 2 4 6
2 2 2 6
0 0 4 4
0 4 0 4
4 4 4 4
따라서 이 경우에는 8번의 반복이 필요하다. 만약 처음부터 모든 원소가 같다면 필요한 반복 횟수는 0이다.
입력
입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 두 줄로 주어진다. 첫째 줄에는 리스트의 원소 개수 ()이 주어진다. 둘째 줄에는 개의 정수가 공백 하나로 구분되어 주어진다. 인 줄은 입력의 끝을 의미하며 처리하지 않는다.
출력
각 테스트 케이스마다 한 줄씩 출력한다. 번째 테스트 케이스에 대해, 모든 원소가 같아지기까지 필요한 반복 횟수가 일 때 Case c: k iterations 형식으로 출력한다 (횟수와 관계없이 항상 iterations를 사용한다). 1000번 반복해도 모든 원소가 같아지지 않으면 Case c: not attained를 출력한다.