페이지

10451번: 순열 사이클

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


$O(tn)$


#include<cstdio>
int t, n, a[1001];
int main() {
    for (scanf("%d", &t); t--;) {
        scanf("%d", &n);
        for (int i = 1; i <= n; i++) scanf("%d", a + i);
        int r = 0;
        for (int i = 1; i <= n; i++) if (a[i]) {
            for (int j = i, t; a[j]; j = t) t = a[j], a[j] = 0;
            r++;
        }
        printf("%d\n", r);
    }
    return 0;
}

댓글 없음 :

댓글 쓰기