아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

수축하는 다각형

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

요약
내접 다각형의 호 길이들이 주어질 때, 남은 도형이 정다각형이 되도록 지워야 하는 최소 꼭짓점 수를 구하고, 불가능하면 -1을 출력한다.
난이도

보통10점 중 7점

유형
정수론, 수학, 배열, 누적 합
정답자
아직 제출이 없습니다

문제

다각형의 모든 꼭짓점이 한 원 위에 놓여 있을 때, 그 다각형을 원에 내접하는 다각형이라고 한다. 원에 내접하는 다각형이 주어질 때, 이 다각형을 정다각형으로 만들기 위해 지워야 하는 꼭짓점의 최소 개수를 구하여라. 정다각형이란 모든 변의 길이가 같고 모든 내각의 크기가 같은 다각형을 말한다.

다각형에서 꼭짓점 vv를 지우려면, 먼저 vv와 이웃한 두 꼭짓점 w1w_1, w2w_2를 찾는다. 그런 다음 w1w_1과 w2w_2를 새로운 변으로 이으면 된다. 이렇게 하면 vv를 사이에 두고 있던 두 호가 하나로 합쳐진다.

예를 들어 꼭짓점이 1010개인 내접 다각형에서 알맞은 꼭짓점 55개를 지우면 정오각형을 만들 수 있다.

다각형의 변의 개수는 항상 33 이상이다.

입력

입력은 여러 개의 테스트 케이스로 이루어진다.

각 테스트 케이스의 첫째 줄에는 내접 다각형의 꼭짓점 개수 NN이 주어진다. (3≤N≤1043 \le N \le 10^4) 둘째 줄에는 NN개의 정수 XiX_i가 주어진다. (1≤Xi≤1031 \le X_i \le 10^3)

XiX_i는 ii번 꼭짓점과 (i+1) mod N(i+1) \bmod N번 꼭짓점 사이의 호의 길이이며, 시계 방향 순서로 주어진다. 여기서 호는 현이 아니라 원둘레를 따라 잰 길이임에 유의하라.

입력의 마지막 줄에는 00이 하나 주어지며, 이 줄은 처리하지 않는다.

출력

각 테스트 케이스마다 정다각형을 만들기 위해 지워야 하는 꼭짓점의 최소 개수를 한 줄에 출력한다. 정다각형을 만들 수 없으면 −1-1을 출력한다.

예제1

  1. 예제 1

    입력
    3
    1000 1000 1000
    6
    1 2 3 1 2 3
    3
    1 1 2
    10
    10 40 20 30 30 10 10 50 24 26
    0
    
    예상 출력
    0
    2
    -1
    5