https://www.acmicpc.net/problem/8981

 

8981번: 입력숫자

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

www.acmicpc.net

 

 

[난이도] Gold4
[유형] 구현

[풀이]
코드를 보고 역추적하는 문제이다. 인덱스와 값의 관계를 잘 파악해야 한다.
어떤 Y에 대해서도 X는 무조건 존재하므로 -1인 출력은 신경쓰지 않아도 된다.

 

#include <cstdio>
int N,a[30],b[30];
int main(){
    scanf("%d",&N);
    for(int i=0;i<N;i++) scanf("%d",&a[i]);

    int idx=0;
    b[0]=a[0];
    for(int j=1;j<N;j++){
        int mv = b[idx];
        idx=(idx+mv)%N;
        while(b[idx]!=0) idx=(idx+1)%N;
        b[idx]=a[j];
    }
    printf("%d\n",N);
    for(int i=0;i<N;i++) printf("%d ",b[i]);
}


https://github.com/has2/Problem-Solving/blob/master/boj-solved.ac/Gold4/8981.cpp

 

 

+ Recent posts