título
análise:
Sequência pode ser encontrado em vários anéis, os elementos em cada anel pode ser ordenados de modo a que o elemento anelar interior na posição correcta, a amostra pode ser encontrado ir novamente, em uma troca elemento em anel requer um número mínimo de elementos operação -1-fim podem ser classificados, porque o único 0 e troca, se o anel inclui 0, em seguida, o número de elementos precisam ser trocados -1-fim, de outro modo, é necessário para a troca de 0 para dentro do anel, e, em seguida, troca os elementos precisam de ser trocados -1 + 2 + 1 número de vezes que é o número de elementos. Então não trocar se um elemento já em vigor.
código:
#include <stdio.h>
#include <stdlib.h>
int main() {
int n,s[100000],ans = 0;
scanf("%d",&n);
for(int i = 0;i < n;i ++) {
scanf("%d",&s[i]);
}
for(int i = 0;i < n;i ++) {
int k = s[i];
int c = 0;
while(s[k] != k) {
c ++;
int t = k;
k = s[k];
s[t] = t;
}
if(c == 0) continue;
if(i == 0) ans += c - 1;
else ans += c + 1;
}
printf("%d",ans);
}