#include int max(int a1, int a2) { return a1 > a2 ? a1 : a2; } int main() { int n = 0; int arr[300000]; while (scanf("%d", &n) > 0) { for (int i = 0; i < n; i++) { int num = 0; scanf("%d", &num); arr[i] = num; } int goodPosCount = 0; int pairPosCount = 0; for (int i = 0; i < n; i++) { if (arr[i] == i + 1) goodPosCount++; else if (arr[arr[i] - 1] == i + 1) pairPosCount++; } int res = pairPosCount / 2 + max(0, n - goodPosCount - pairPosCount - 1); printf("%d\n", res); } return 0; }