Codeforces 201(DIV2)B

来源:互联网 发布:透视手机照相机软件 编辑:程序博客网 时间:2024/06/09 17:07
思路:a[i] = k,且a[k] = i,即i==a[a[i]](k与i不相等)则可增加2,否则若sum!=n,则必增加1.

#include<stdio.h>#include<math.h>int a[100001];int main(){int n,i,sum,flag,flag1,p;while(~scanf("%d",&n)){p = flag = flag1 = sum = 0;for(i = 0;i < n;i ++){scanf("%d",&a[i]);if(i==a[i])sum++;}if(sum!=n)flag1 = 1;for(i = 0;i < n;i ++){if(a[a[i]]==i&&a[i]!=i){flag = 1;break ;}}if(!(flag+flag1))printf("%d\n",sum);if(flag==1){printf("%d\n",sum+2);continue ;}if(flag==0&&flag1==1)printf("%d\n",sum+1);}


0 0
原创粉丝点击