| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1 초 (추가 시간 없음) | 1024 MB (추가 메모리 없음) | 191 | 37 | 31 | 31.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$가 다를 필요는 없다. 예를 들어, $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$이 최소일 필요는 없다.
2
2 2 1 3 3 3 2000
4
3 1 2 5 3 4 6 5 6 2000
University > 신촌지역 대학생 프로그래밍 대회 동아리 연합 > 2024 신촌지역 대학생 프로그래밍 동아리 연합 여름 대회 (SUAPC 2024 Summer) B번