以下為通過高中生程式解題系統 AC (Accepted) 的 C 語言程式參考解答
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 27 28 29 30 31 32 33 34 35 36 37 38 | #include <stdio.h> #include <stdlib.h> int main() { int n; int count = 0 ; int f[50001],v[50001]; scanf("%d",&n); for( int i = 0 ; i < n ; i++ ){ scanf("%d",&f[i]); v[i] = 0 ; } for (int i = 0 ; i < n ; i++) { if(v[i] == 0){ if(f[i] == i){ count++; v[i] = 1 ; }else{ v[i] = 1 ; int next = f[i]; while(v[next] == 0){ v[next] = 1; next = f[next] ; } count++; } } } printf("%d",count); return 0; } |
沒有留言:
張貼留言