fork download
  1. #include <stdio.h>
  2.  
  3. int main(void) {
  4. int t;scanf("%d",&t);
  5. while(t--)
  6. {
  7. int n,i,j,k; long long c=1;
  8. scanf("%d",&n);
  9. long long a[1000001],p[n],na[n];
  10. for(i=1;i<=n;i++){
  11. scanf("%ld",&a[i]);
  12. p[a[i]]=a[i];
  13. }//for
  14. //change the positions accordingly
  15. for(i=1;i<=n;i++){
  16. na[i]=p[i];
  17. }//for
  18. for(j=1;j<=n;j++)
  19. {
  20.  
  21. if(na[j]==a[j]){continue;}
  22. else {for(k=1;k<=n;k++){na[k]=p[na[k]];}c++;}
  23.  
  24.  
  25. }//forj
  26.  
  27. printf("%lld\n",c%1000000007);
  28.  
  29. }//while
  30. return 0;
  31. }
Success #stdin #stdout 0s 9984KB
stdin
2
3
1 2 3
5
2 3 1 5 4
stdout
1
6