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

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

Squarks

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

요약
서로 다른 n개의 양의 정수의 모든 두 수 합 n(n-1)/2개가 주어질 때, 이 합들과 일치하는 n개의 정수 집합을 모두 찾아 사전순으로 출력한다.
난이도

어려움10점 중 8점

유형
정렬, 완전 탐색, 수학, 구현
정답자
아직 제출이 없습니다

문제

물리학자 바이트아사르는 새로운 물질 구성 입자인 스쿼크(squark)를 연구하고 있다. 스쿼크는 홀로 존재하지 못하고 항상 둘씩 짝을 이루는 매우 특이한 입자이며, 어떤 종류의 스쿼크는 반드시 자신과 다른 종류의 스쿼크와만 짝을 이룬다.

연구 끝에 그는 스쿼크에 서로 다른 nn가지 종류가 있음을 밝혀냈다. 각 종류의 스쿼크는 고유한 질량을 가지며, 그 질량은 어떤 기준 단위의 양의 정수 배이다. 그는 또한 서로 다른 두 종류로 이루어질 수 있는 n(n−1)2\frac{n(n-1)}{2}가지 짝 각각의 전체 질량도 측정했다. 표준 모형에 따르면 한 짝의 질량은 그 짝을 이루는 두 스쿼크 질량의 합과 같다.

이제 그는 각 종류의 스쿼크가 가지는 개별 질량을 알아내고자 한다. 측정된 짝 질량들과 모순되지 않는 모든 질량 구성을 재구성하는 프로그램을 작성하라.

입력

첫째 줄에 스쿼크 종류의 수를 나타내는 정수 nn (3≤n≤3003 \le n \le 300)이 주어진다.

둘째 줄에는 가능한 모든 짝의 전체 질량 n(n−1)2\frac{n(n-1)}{2}개가 공백 하나로 구분되어 주어진다. 이들은 모두 양의 정수이며, 각 짝의 질량은 10810^8을 넘지 않는다. 서로 다른 두 종류의 스쿼크로 이루어지는 각 짝의 질량은 입력에 정확히 한 번씩 주어지며, 순서는 임의이다.

전체 점수의 32%를 차지하는 테스트에서는 추가로 n≤20n \le 20이고 각 짝의 질량이 2000을 넘지 않는다.

출력

첫째 줄에 가능한 해의 개수 kk를 출력한다. 입력마다 해가 적어도 하나 존재함이 보장되므로 k>0k > 0이다.

이어지는 kk개의 줄에 각 해를 한 줄에 하나씩 출력한다. 각 해는 모든 종류의 스쿼크 질량인 서로 다른 양의 정수 nn개로 이루어지며, 한 줄 안에서는 증가하는 순서로 공백 하나씩 구분해 출력한다.

정답이 유일하게 결정되도록, kk개의 해는 정수 수열로 비교했을 때 사전순으로 증가하는 순서로 출력한다.

예제3

  1. 예제 1

    입력
    4
    3 5 4 7 6 5
    
    예상 출력
    1
    1 2 3 4
    
  2. 예제 2

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

    입력
    8
    5 6 7 8 9 9 10 10 11 11 12 12 13 13 13 13 14 14 15 15 16 16 17 17 18 19 20 21
    
    예상 출력
    2
    1 4 5 6 7 8 9 12
    2 3 4 6 7 9 10 11