사탕 나누기 게임
면접 대비시간 제한1초메모리 제한128 MB
학생들이 원형으로 앉아 사탕의 절반을 오른쪽으로 넘기고 홀수면 1개를 더 받는 과정을 모두 같아질 때까지 시뮬레이션해 라운드 수와 최종 사탕 수를 구합니다.
문제
여러 명의 학생이 선생님을 중심에 두고 원형으로 둘러앉아 있다. 각 학생은 처음에 짝수 개의 사탕을 가지고 있다. 선생님이 호루라기를 한 번 불면, 모든 학생은 동시에 자신이 가진 사탕의 절반을 오른쪽 이웃에게 준다. 그 결과 사탕 개수가 홀수가 된 학생에게는 선생님이 사탕을 하나 더 준다.
모든 학생이 같은 개수의 사탕을 가지게 되면 게임은 끝난다. 각 게임에 대해 선생님이 호루라기를 몇 번 불었는지와, 게임이 끝났을 때 각 학생이 가지는 사탕 개수를 구하라.
입력
입력에는 여러 개의 게임이 주어질 수 있다. 각 게임은 학생 수 N으로 시작하며, 이어서 원을 반시계 방향으로 따라가며 각 학생이 처음 가진 짝수 개의 사탕 수 N개가 주어진다. 입력의 끝은 학생 수 0으로 표시된다.
모든 입력 값은 한 줄에 하나씩 주어진다.
출력
각 게임마다 한 줄에 게임의 라운드 수와 마지막에 각 학생이 가지는 사탕 개수를 공백으로 구분해 출력한다.
힌트
게임은 항상 유한한 횟수 안에 끝난다. 그 이유는 다음과 같다.
- 가장 많은 사탕을 가진 학생의 사탕 수는 절대 증가하지 않는다.
- 가장 적은 사탕을 가진 학생의 사탕 수는 절대 감소하지 않는다.
- 최솟값보다 많은 사탕을 가진 학생이 최솟값까지 줄어드는 일은 없다.
- 최댓값과 최솟값이 서로 다르면, 최솟값을 가진 학생 중 적어도 한 명의 사탕 수가 증가한다.