[KOI]전국본선 2013 중등부 두번째 문제




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <stdio.h>
 
int main()
{
    int n;
    int after[30] = { 0, }, before[30] = { 0, };
    scanf("%d", &n);
    for (int i = 0; i < n; ++i) {
        scanf("%d", &after[i]);
    }
    int cur = 0, count = 0;
    while (count < n) {
        while (before[cur] != 0) {
            cur = (cur + 1) % n;
        }
        before[cur] = after[count++];
        cur = (before[cur] + cur) % n;
    }
 
    printf("%d\n", n);
    for (int i = 0; i < n; ++i) {
        printf("%d ", before[i]);
    }
 
    return 0;
}