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

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

티셔츠가 더 필요해!

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

요약
각 항목이 티셔츠 개수이거나 전체에 대한 백분율인 목록이 주어질 때, 이 목록과 모순되지 않는 전체 티셔츠 수를 모두 구한다.
난이도

어려움10점 중 8점

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

문제

Innopolis Open 2020이 다가온다. 올림피아드 참가자들을 위한 티셔츠를 주문할 때가 되었다.

조직위는 여러 색의 티셔츠를 사 두면 누가 조직위원이고 누가 심사위원이고 누가 참가자인지 쉽게 구별할 수 있을 것이라고 생각했다.

이 일에는 두 사람이 배정되었고, 두 사람은 각 색 티셔츠를 몇 장 주문할지 정했다. 그러나 두 사람은 의견이 맞지 않아서, 한 사람은 특정 색 티셔츠의 주문 수량을 적었고 다른 사람은 특정 색 티셔츠의 비율을 적었다. 그 결과 길이 nn인 목록이 만들어졌는데, 목록의 각 원소 aia_i는 색 ii 티셔츠의 수이거나 전체 티셔츠 수에 대한 색 ii 티셔츠의 비율이다. 또한 목록에서 적어도 하나의 원소 aia_i는 색 ii 티셔츠의 수라는 것도 알려져 있다.

이제 조직위는 올림피아드를 위해 사야 할 티셔츠의 총수가 얼마인지 알아내려고 한다. 이런 목록이 나올 수 있는 티셔츠 총수의 모든 경우를 구해 보자.

입력

첫째 줄에 서로 다른 색의 수 nn이 주어진다 (1≤n≤1051 \le n \le 10^5).

둘째 줄에 nn개의 정수 aia_i가 주어진다. 각 값은 색 ii의 티셔츠 수이거나 색 ii의 티셔츠 비율이다 (1≤ai≤1091 \le a_i \le 10^9).

출력

첫째 줄에 이런 목록이 나올 수 있는 티셔츠 총수의 경우의 수를 출력한다.

둘째 줄에 가능한 티셔츠 총수를 오름차순으로 모두 출력한다.

힌트

첫 번째 예제 설명:

티셔츠 총수가 22인 경우: 색 11이 한 장, 색 22가 한 장이다. 첫 번째 원소(11)를 색 11의 티셔츠 수로, 두 번째 원소(5050)를 색 22의 티셔츠 비율로 보면 주어진 목록이 나온다. 2=1+2⋅501002 = 1 + 2 \cdot \frac{50}{100}.

티셔츠 총수가 5151인 경우: 색 11이 한 장, 색 22가 5050장이다. 두 원소를 모두 색 11, 색 22의 티셔츠 수로 보면 주어진 목록이 나온다. 51=1+5051 = 1 + 50.

두 번째 예제 설명:

  • 120=20+30+70120 = 20 + 30 + 70
  • 125=125⋅20100+30+70125 = 125 \cdot \frac{20}{100} + 30 + 70
  • 140=140⋅20100+140⋅30100+70140 = 140 \cdot \frac{20}{100} + 140 \cdot \frac{30}{100} + 70
  • 300=300⋅20100+30+300⋅70100300 = 300 \cdot \frac{20}{100} + 30 + 300 \cdot \frac{70}{100}

예제4

  1. 예제 1

    입력
    2
    1 50
    
    예상 출력
    2
    2 51
    
  2. 예제 2

    입력
    3
    20 30 70
    
    예상 출력
    4
    120 125 140 300
    
  3. 예제 3

    입력
    4
    2 40 90 5
    
    예상 출력
    3
    137 470 840
    
  4. 예제 4

    입력
    7
    10 20 5 15 30 17 3
    
    예상 출력
    1
    100