축구 게임

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

요약
무승부 없는 리그에서 n개 팀이 보고한 승수를 받아, 실제 경기 결과로 그 점수들을 만들 수 있는지 판정한다.
난이도

보통10점 중 5점

유형
그리디, 정렬
정답자
아직 제출이 없습니다

문제

축구 리그에 nn개 팀이 참가한다. 한 팀은 나머지 모든 팀과 정확히 한 번씩 경기하므로, 각 팀이 치르는 경기는 n−1n - 1번이다. 무승부는 승부차기로 가리기 때문에 없다. 한 경기에서 이긴 팀은 1점을 얻고, 진 팀은 0점을 얻는다.

일정이 모두 끝나면 각 팀이 자기가 얻은 점수를 리그 사무국에 보고한다. 사무국은 보고된 점수에 실수가 없는지 확인하려고 한다. 즉 리그 규칙을 지키는 경기 결과 중에서 각 팀에 보고된 점수를 그대로 줄 수 있는 결과가 있는지 판정하려는 것이다.

nn개 팀이 보고한 점수가 주어질 때, 이 점수가 유효한지 판정하는 프로그램을 작성하시오.

입력

프로그램은 표준 입력에서 읽는다. 입력은 두 줄이다. 첫째 줄에 팀의 수 nn이 주어진다 (2≤n≤100002 \le n \le 10000). 둘째 줄에 각 팀이 보고한 점수 nn개가 공백으로 구분되어 주어진다. 각 점수는 00 이상 n−1n - 1 이하의 정수이다.

출력

프로그램은 표준 출력에 쓴다. 보고된 점수가 유효하면 1을, 유효하지 않으면 -1을 출력한다.

예제4

  1. 예제 1

    입력
    4
    0 2 1 3
    
    예상 출력
    1
    
  2. 예제 2

    입력
    4
    3 3 0 0
    
    예상 출력
    -1
    
  3. 예제 3

    입력
    2
    0 1
    
    예상 출력
    1
    
  4. 예제 4

    입력
    3
    1 1 1
    
    예상 출력
    1