- #define HAVE_STRUCT_TIMESPEC
- #include<bits/stdc++.h>
- using namespace std;
- int a[100007],b[100007];
- int main(){
- iOS::sync_with_stdio(false);
- cin.tie(NULL);
- cout.tie(NULL);
- int n;
- cin>>n;
- int ans=n-1;
- for(int i=0;i<n;++i){
- cin>>a[i];
- b[a[i]]=i;
- if(a[i]==i&&a[i])
- --ans;
- }
- int sum=0;
- int pos=1;
- while(ans){
- if(b[0]!=0){
- swap(b[0],b[b[0]]);
- ++sum;
- --ans;
- }
- else{
- for(int i=pos;i<n;++i)
- if(b[i]!=i){
- swap(b[0],b[i]);
- ++sum;
- pos=i+1;
- break;
- }
- }
- }
- cout<<sum;
- return 0;
- }
来源: http://www.bubuko.com/infodetail-3268314.html