cf B. Fixed Points

时间:2023-03-09 02:51:37
cf B. Fixed Points

http://codeforces.com/contest/347/problem/B

 #include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std; int n;
int a[];
int id[];
int main()
{
while(scanf("%d",&n)!=EOF)
{
int cnt=;
for(int i=; i<n; i++)
{
scanf("%d",&a[i]);
id[i]=a[i];
if(a[i]==i)
{
id[i]=-;
cnt++;
}
}
bool flag=false;
bool flag1=false;
for(int i=; i<n; i++)
{
if(id[id[i]]==i&&id[i]!=-)
{
flag=true;
cnt+=;
break;
}
else if(id[i]!=i&&id[i]!=-)
{
flag1=true;
}
}
if(!flag&&flag1) cnt+=;
printf("%d\n",cnt);
}
return ;
}