Submission #1269319

#TimeUsernameProblemLanguageResultExecution timeMemory
1269319sula2Migrations (IOI25_migrations)C++20
0 / 100
1360 ms2162688 KiB
#include <bits/stdc++.h> using namespace std; vector<int> adj[10000]; int X = 0, Y = 0; pair<int,int> dfs(int u, int p = -1) { pair<int,int> res = {0, u}; for (int v : adj[u]) { auto z = dfs(v, u); z.first++; res = max(res, z); } return res; } int send_message(int N, int i, int Pi) { adj[i].push_back(Pi); adj[Pi].push_back(i); int nX = 0, nY = 0; if (i >= N-3) { nX = dfs(0).second; nY = dfs(0).second; } int res = 0; if (i < N-2) goto NOTHING; if (i == N-2) res = X; else { res = i == nX ? Y + N : Y; } NOTHING: X = nX, Y = nY; return res; } pair<int,int> longest_path(std::vector<int> S) { int n = S.size(); int u = S[n-2]; int v = S[n-2]; if (v >= n) { u = v - n; v = n-1; } return {u, v}; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...