Logo
(追記) (追記ここまで)

32159번 - 평균 구하기 스페셜 저지

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 (추가 시간 없음) 1024 MB (추가 메모리 없음)191373131.633%

문제

$N$개의 정수가 주어질 때, 이들의 평균을 구하는 프로그램을 작성하려고 한다.

이를 위해 무한 정밀도의 실수를 저장하는 레지스터 2ドル,000円$개를 사용할 수 있다. 이 레지스터는 $R_{1},ドル $R_{2},ドル ..., $R_{2,000円}$으로 이름이 매겨져 있다.

초기에 $N$개의 정수는 $R_{1},ドル $R_{2},ドル $\cdots,ドル $R_{N}$에 저장되어 있다. 나머지 2ドル,000円-N$개 레지스터에는 0ドル$이 저장되어 있다. 당신이 할 수 있는 연산은 다음과 같다.

  • $a$ $b$ $c$: $R_{c}$에 $(R_{a}+R_{b}) /2$의 값을 덮어씌운다.

$a,ドル $b,ドル $c$가 다를 필요는 없다. 예를 들어, $a=1,ドル $b=2,ドル $c=1$는 $R_{1}$과 $R_{2}$의 평균을 구한 뒤 그 값을 $R_{1}$에 저장하는 연산이다.

이 연산을 1ドル,000円$번 이하로 사용하여, 처음에 $R_{2,000円}$에 $R_{1},ドル $R_{2},ドル $\cdots,ドル $R_{N}$에 주어진 값의 평균을 저장하는 프로그램을 작성하고 싶다. 그러나 위 연산만으로는 정확한 평균을 구할 수 없다는 것을 증명할 수 있다. 따라서 이 문제에서는 정확한 값을 구하는 대신 절대 오차를 10ドル^{-9}$ 이하로 해야 한다.

처음에 $R_{1},ドル $R_{2},ドル $\cdots,ドル $R_{N}$에 저장된 수들은 모두 0ドル$ 이상 10ドル^{9}$ 이하의 정수임이 보장된다. 이 범위의 어떤 수가 들어오더라도 평균과 차이가 10ドル^{-9}$ 이하인 값을 구해야 한다.

입력

첫 번째 줄에 $N$이 주어진다. (2ドル\le N\le 10$)

출력

첫 번째 줄에 프로그램이 수행할 연산의 수 $M$을 출력한다. (0ドル\le M\le 1,000円$)

다음 $M$개의 줄에 프로그램의 연산을 나타내는 3ドル$개의 수 $a,ドル $b,ドル $c$를 공백을 사이에 두고 출력한다. (1ドル\le a,b,c\le 2,000円$)

프로그램이 $M$개의 연산을 차례대로 수행했을 때, $R_{2,000円}$에는 처음에 $R_{1},ドル $R_{2},ドル $\cdots,ドル $R_{N}$에 주어진 값의 평균과 차이가 10ドル^{-9}$ 이하인 값이 저장되어 있어야 한다. $M$이 최소일 필요는 없다.

제한

예제 입력 1

2

예제 출력 1

2
2 1 3
3 3 2000

예제 입력 2

4

예제 출력 2

3
1 2 5
3 4 6
5 6 2000

힌트

출처

University > 신촌지역 대학생 프로그래밍 대회 동아리 연합 > 2024 신촌지역 대학생 프로그래밍 동아리 연합 여름 대회 (SUAPC 2024 Summer) B번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /