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

8981번 - 입력숫자 서브태스크

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 32 MB126173164165.676%

문제

아래 mystery.c는 입력파일 X를 읽어서 그 안에 기록된 N개의 정수를 배열 NUM에 저장한 뒤에 이 N개의 수를 어떤 순서에 따라서 화면에 출력하는 프로그램이다. mystery.c가 X를 입력으로 받아 화면에 출력한 결과를 Y라고 하자.

#include <stdio.h>
int NUM[101] ;
FILE *fin ;
int main(){
 int i, token,N ;
 int count=0, from= 0, value ;
 fin = fopen("X","r");
 fscanf(fin,"%d",&N);
 for(i=0; i<N; i++){
 fscanf(fin,"%d",&token);
 NUM[i]= token;
 } /* end of for */
 printf("%d\n", N ) ;
 value = NUM[ from ] ;
 while( count < N ) {
 while( value == 0 ) { 
 from = (from+1)%N; 
 value = NUM[ from ] ; 
 } /* end of inner while */ 
 printf("%d ", value ) ;
 count++ ;
 NUM[ from ] = 0 ; 
 from = (value +from )% N ; 
 value = NUM[ from ] ; 
 } /* end of outer while */
 return(0);
} /* end of main() */

여러분은 mystery.c에서 생성된 Y를 파일로 받아서 그것의 입력에 해당하는 X를 찾아내는 프로그램을 작성해야 한다.

입력

첫 줄에는 정수 N (1 ≤ N ≤ 30)이 주어진다. 그리고 두 번째 줄에는 100이하 양의 정수 N개가 빈칸을 사이에 두고 모두 나열되어 있다. 단 그 정수 중에는 같은 수가 있을 수도 있다.

출력

첫 줄에는 정수 N이 제시되어 있고, 그 다음 줄에는 N개의 양의 정수가 빈칸을 사이에 두고 기록되어 있어야 한다. 만일 입력을 생성하는 mystery.c의 입력파일 X가 없는 경우에는 음수인 -1 을 첫 줄에 출력하면 된다.

제한

서브태스크

번호배점제한
115

N ≤ 10, NUM 배열의 수는 N이하의 양의 정수이고, 한번씩 나타난다.

221

N ≤ 20, NUM 배열의 수는 1 또는 2이다.

329

N ≤ 20, NUM 배열의 수는 100 이하의 양의 정수이다.

435

N ≤ 30, NUM 배열의 수는 100 이하의 양의 정수이다.

예제 입력 1

5
1 2 4 3 5

예제 출력 1

5
1 2 3 4 5

예제 입력 2

10
1 2 4 8 6 3 7 5 10 9

예제 출력 2

10
1 2 3 4 5 6 7 8 9 10

예제 입력 3

10
5 5 7 4 33 10 9 3 2 6

예제 출력 3

10
5 7 33 2 6 5 10 9 4 3

힌트

출처

Olympiad > 한국정보올림피아드 > KOI 2013 > 초등부 3번

Olympiad > 한국정보올림피아드 > KOI 2013 > 중등부 2번

채점 및 기타 정보

  • 예제는 채점하지 않는다.
(追記) (追記ここまで)

출처

대학교 대회

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

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