#include #include using namespace std; using ll = long long; int main() { ios::sync_with_stdio(false); cin.tie(0); int n; cin >> n; vector a(n); atcoder::scc_graph g(n); for(int i = 0; i < n; i++){ cin >> a[i]; a[i]--; g.add_edge(i, a[i]); } int ans = 0; auto G = g.scc(); for(auto &&vec : G){ if(vec.size() == 1){ ans += vec[0] == a[vec[0]]; }else{ ans++; } } cout << ans << endl; }