Squarks
시간 제한2초메모리 제한128 MB
서로 다른 n개의 양의 정수의 모든 두 수 합 n(n-1)/2개가 주어질 때, 이 합들과 일치하는 n개의 정수 집합을 모두 찾아 사전순으로 출력한다.
문제
물리학자 바이트아사르는 새로운 물질 구성 입자인 스쿼크(squark)를 연구하고 있다. 스쿼크는 홀로 존재하지 못하고 항상 둘씩 짝을 이루는 매우 특이한 입자이며, 어떤 종류의 스쿼크는 반드시 자신과 다른 종류의 스쿼크와만 짝을 이룬다.
연구 끝에 그는 스쿼크에 서로 다른 가지 종류가 있음을 밝혀냈다. 각 종류의 스쿼크는 고유한 질량을 가지며, 그 질량은 어떤 기준 단위의 양의 정수 배이다. 그는 또한 서로 다른 두 종류로 이루어질 수 있는 가지 짝 각각의 전체 질량도 측정했다. 표준 모형에 따르면 한 짝의 질량은 그 짝을 이루는 두 스쿼크 질량의 합과 같다.
이제 그는 각 종류의 스쿼크가 가지는 개별 질량을 알아내고자 한다. 측정된 짝 질량들과 모순되지 않는 모든 질량 구성을 재구성하는 프로그램을 작성하라.
입력
첫째 줄에 스쿼크 종류의 수를 나타내는 정수 ()이 주어진다.
둘째 줄에는 가능한 모든 짝의 전체 질량 개가 공백 하나로 구분되어 주어진다. 이들은 모두 양의 정수이며, 각 짝의 질량은 을 넘지 않는다. 서로 다른 두 종류의 스쿼크로 이루어지는 각 짝의 질량은 입력에 정확히 한 번씩 주어지며, 순서는 임의이다.
전체 점수의 32%를 차지하는 테스트에서는 추가로 이고 각 짝의 질량이 2000을 넘지 않는다.
출력
첫째 줄에 가능한 해의 개수 를 출력한다. 입력마다 해가 적어도 하나 존재함이 보장되므로 이다.
이어지는 개의 줄에 각 해를 한 줄에 하나씩 출력한다. 각 해는 모든 종류의 스쿼크 질량인 서로 다른 양의 정수 개로 이루어지며, 한 줄 안에서는 증가하는 순서로 공백 하나씩 구분해 출력한다.
정답이 유일하게 결정되도록, 개의 해는 정수 수열로 비교했을 때 사전순으로 증가하는 순서로 출력한다.