평균 구하기
시간 제한1초메모리 제한1024 MB
N개의 정수(2 이상 10 이하)가 레지스터에 주어질 때, 두 레지스터의 평균을 내는 연산을 1000번 이하로 사용해 평균을 오차 1e-9 이내로 R2000에 저장하는 순서를 출력합니다.
문제
개의 정수가 주어질 때, 이들의 평균을 구하는 프로그램을 작성하려고 한다.
이를 위해 무한 정밀도의 실수를 저장하는 레지스터 개를 사용할 수 있다. 레지스터의 이름은 , , , 이다.
초기에 개의 정수는 , , , 에 저장되어 있다. 나머지 개 레지스터에는 이 저장되어 있다. 당신이 할 수 있는 연산은 다음과 같다.
a b c: 에 의 값을 덮어씌운다.
, , 가 서로 달라야 할 필요는 없다. 예를 들어 , , 이면 과 의 평균을 구한 뒤 그 값을 에 저장한다.
이 연산을 1000번 이하로 사용하여, 처음에 , , , 에 주어진 값의 평균을 에 저장하는 프로그램을 작성하고 싶다. 그러나 위 연산만으로는 정확한 평균을 구할 수 없다는 것을 증명할 수 있다. 따라서 이 문제에서는 정확한 값 대신 절댓값 오차를 이하로 해야 한다.
처음에 , , , 에 저장된 수는 모두 이상 이하의 정수임이 보장된다. 이 범위의 어떤 수가 들어오더라도 평균과 차이가 이하인 값을 구해야 한다.
입력
첫 번째 줄에 이 주어진다. ()
출력
첫 번째 줄에 프로그램이 수행할 연산의 수 을 출력한다. ()
다음 개의 줄에 프로그램의 연산을 나타내는 세 수 , , 를 공백으로 구분하여 출력한다. ()
프로그램이 개의 연산을 차례대로 수행했을 때, 에는 처음에 , , , 에 주어진 값의 평균과 차이가 이하인 값이 저장되어 있어야 한다. 이 최소일 필요는 없다.