Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int main() {
- ios_base::sync_with_stdio(false);
- cin.tie(nullptr);
- cout.tie(nullptr);
- int N;
- cin >> N;
- vector<int> a(N);
- for(int &x : a)
- cin >> x;
- int ans = 1;
- vector<int> iese(N), intra(N);
- for(int i = 0; i < N; ++i)
- if(!iese[i] && !intra[i]) {
- int p = i, intra_last = 0;
- vector<int> v;
- while(!iese[p]) {
- iese[p] = 1;
- ++intra[a[p]];
- intra_last = intra[a[p]];
- v.emplace_back(p);
- p = a[p];
- }
- int poz = 0, sz = v.size();
- while(poz < sz && intra[v[poz]] != intra_last)
- ++poz;
- ans = max(ans, sz - poz);
- }
- cout << ans;
- }
Advertisement
Add Comment
Please, Sign In to add comment