연료 보급 순회

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

문제

번호가 1, 2, 3, … 으로 매겨진 도시들을 한 바퀴 순회해야 합니다. 번호는 이동 방향을 정합니다. 즉 도시 1에서 도시 2로, 도시 2에서 도시 3으로 이동하며, 가장 큰 번호의 도시에서는 다시 도시 1로 돌아옵니다. 순회는 어느 도시에서 시작해도 되고, 모든 도시를 정확히 한 번씩 지나 출발한 도시로 되돌아옵니다.

각 도시에는 정해진 양의 연료를 가진 주유소가 있습니다. 모든 주유소의 연료 합은 전체 순회를 마치는 데 필요한 연료의 합과 정확히 같습니다. 출발하는 주유소에서 연료 탱크가 빈 상태로 시작하며, 순회를 마치고 출발 주유소로 돌아오는 순간 탱크는 정확히 비게 됩니다. 탱크 용량은 얼마든지 채울 수 있을 만큼 충분히 크다고 가정합니다.

순회 도중 출발 도시로 돌아오기 전에 연료가 바닥나지 않도록 하려면, 어떤 도시를 출발점으로 삼을 수 있는지 모두 구하세요.

입력

입력에는 여러 개의 테스트 케이스가 들어 있습니다. 각 테스트 케이스는 세 줄로 주어집니다.

  • 첫째 줄에는 도시의 수를 나타내는 정수 하나가 주어집니다.
  • 둘째 줄에는 각 주유소에 준비된 연료의 양이 도시 번호 순서(도시 1, 도시 2, 도시 3, …)로 주어집니다.
  • 셋째 줄에는 각 주유소에서 다음 주유소로 이동하는 데 필요한 연료의 양이 도시 번호 순서로 주어집니다. 즉 도시 1에서 도시 2로, 도시 2에서 도시 3으로, …, 마지막으로 가장 큰 번호의 도시에서 도시 1로 돌아오는 데 필요한 연료입니다.

모든 연료의 양은 양의 정수(임페리얼 갤런 단위)입니다. 연료 공급량의 총합은 부호 있는 32비트 정수 범위를 넘지 않습니다. 각 테스트 케이스의 도시 수는 2 이상 100000 이하입니다. 도시 수로 0 하나만 있는 줄은 입력의 끝을 뜻하며 처리하지 않습니다.

출력

각 테스트 케이스마다 한 줄을 출력합니다. 줄의 시작에 Case k: 를 쓰고(k는 1부터 세는 테스트 케이스 번호), 이어서 출발점이 될 수 있는 모든 도시 번호를 증가하는 순서로 한 칸(공백)씩 띄어 나열합니다. 수학자 L. Lovász는 유효한 출발 도시가 항상 최소한 하나는 존재함을 증명했습니다.