// UUID: 28289eb6-02cf-4a40-8e4c-1ed53a82bdc7
#include <bits/stdc++.h>
using namespace std;
//SEGÍTSÉGGEL, a tavalyi megoldásokból inspirálódva, hogy megértsem a feladatot,
//és megértsem a mintát.
const int N=2e5+1;
struct Graph {
int len[N];
int parent[N];
int next[N];
bool bennE[N];
} g;
int kms(int u) {
g.bennE[u]=1;
if (g.len[u]!=-1) {
g.bennE[u]=0;
return g.len[u];
}
int v=g.next[u];
if (g.bennE[v]) {
int circle=0;
for (int w=u; ; w=g.parent[w]) {
circle++;
if (w==v) break;
}
for (int w=u; ; w=g.parent[w]) {
g.len[w]=circle;
if (w==v) break;
}
g.bennE[u]=0;
return g.len[u];
}
g.parent[v]=u;
int help=kms(v);
if (g.len[u]==-1) {
g.len[u]=help+1;
}
g.bennE[u]=0;
return g.len[u];
}
int main() {
int n; cin >> n;
for (int i=1; i<=n; i++) {
cin >> g.next[i];
}
memset(g.len, -1, sizeof g.len); // mint egy init for csak gyorsabb elv.
int megold=0, legtobb=0;
for (int i=1; i<=n; i++) {
int tmp=kms(i);
if (tmp>legtobb) {
legtobb=tmp;
megold=i;
}
}
cout << megold << " " << legtobb;
}
| Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
|---|---|---|---|---|---|---|---|
| subtask1 | 0/0 | ||||||
| 1 | Elfogadva | 1ms | 1076 KiB | ||||
| subtask2 | 20/20 | ||||||
| 2 | Elfogadva | 2ms | 1268 KiB | ||||
| 3 | Elfogadva | 2ms | 1192 KiB | ||||
| 4 | Elfogadva | 2ms | 1076 KiB | ||||
| 5 | Elfogadva | 2ms | 1260 KiB | ||||
| 6 | Elfogadva | 2ms | 1076 KiB | ||||
| 7 | Elfogadva | 2ms | 1076 KiB | ||||
| 8 | Elfogadva | 2ms | 1076 KiB | ||||
| 9 | Elfogadva | 2ms | 1076 KiB | ||||
| 10 | Elfogadva | 2ms | 1076 KiB | ||||
| 11 | Elfogadva | 2ms | 1076 KiB | ||||
| 12 | Elfogadva | 2ms | 1076 KiB | ||||
| subtask3 | 18/18 | ||||||
| 13 | Elfogadva | 76ms | 2888 KiB | ||||
| 14 | Elfogadva | 79ms | 2956 KiB | ||||
| 15 | Elfogadva | 82ms | 4400 KiB | ||||
| 16 | Elfogadva | 82ms | 3380 KiB | ||||
| 17 | Elfogadva | 86ms | 4660 KiB | ||||
| 18 | Elfogadva | 86ms | 4916 KiB | ||||
| 19 | Elfogadva | 83ms | 4916 KiB | ||||
| 20 | Elfogadva | 83ms | 4908 KiB | ||||
| 21 | Elfogadva | 89ms | 7992 KiB | ||||
| 22 | Elfogadva | 86ms | 9012 KiB | ||||
| subtask4 | 42/42 | ||||||
| 23 | Elfogadva | 2ms | 1076 KiB | ||||
| 24 | Elfogadva | 2ms | 1268 KiB | ||||
| 25 | Elfogadva | 2ms | 1192 KiB | ||||
| 26 | Elfogadva | 2ms | 1076 KiB | ||||
| 27 | Elfogadva | 2ms | 1260 KiB | ||||
| 28 | Elfogadva | 2ms | 1076 KiB | ||||
| 29 | Elfogadva | 2ms | 1076 KiB | ||||
| 30 | Elfogadva | 2ms | 1076 KiB | ||||
| 31 | Elfogadva | 2ms | 1076 KiB | ||||
| 32 | Elfogadva | 2ms | 1076 KiB | ||||
| 33 | Elfogadva | 2ms | 1076 KiB | ||||
| 34 | Elfogadva | 2ms | 1076 KiB | ||||
| 35 | Elfogadva | 76ms | 2888 KiB | ||||
| 36 | Elfogadva | 79ms | 2956 KiB | ||||
| 37 | Elfogadva | 82ms | 4400 KiB | ||||
| 38 | Elfogadva | 82ms | 3380 KiB | ||||
| 39 | Elfogadva | 86ms | 4660 KiB | ||||
| 40 | Elfogadva | 86ms | 4916 KiB | ||||
| 41 | Elfogadva | 83ms | 4916 KiB | ||||
| 42 | Elfogadva | 83ms | 4908 KiB | ||||
| 43 | Elfogadva | 89ms | 7992 KiB | ||||
| 44 | Elfogadva | 86ms | 9012 KiB | ||||
| 45 | Elfogadva | 76ms | 2868 KiB | ||||
| 46 | Elfogadva | 76ms | 4148 KiB | ||||
| 47 | Elfogadva | 76ms | 4180 KiB | ||||
| 48 | Elfogadva | 76ms | 3112 KiB | ||||
| 49 | Elfogadva | 79ms | 3380 KiB | ||||
| 50 | Elfogadva | 78ms | 3648 KiB | ||||
| 51 | Elfogadva | 79ms | 3636 KiB | ||||
| 52 | Elfogadva | 79ms | 3636 KiB | ||||
| 53 | Elfogadva | 81ms | 4404 KiB | ||||
| 54 | Elfogadva | 79ms | 4868 KiB | ||||