제출 #1303470

#제출 시각아이디문제언어결과실행 시간메모리
1303470nikoloz-ch이주 (IOI25_migrations)C++20
0 / 100
28 ms952 KiB
#include <bits/stdc++.h> using namespace std; int p[10001]; vector<vector<int>> a; vector<int> v; void dfs(int u, int k, int cnt){ v[u] = cnt; for(int e : a[u]) if(e != k) dfs(e, u, cnt + 1); } int ml = 1; int send_message(int N, int i, int Pi) { p[i] = Pi; if(i >= N - 2){ a.assign(N + 1, {}); v.assign(N + 1, 0); for(int j = 1; j <= N; j++){a[p[j]].push_back(j);} dfs(0, -1, 0); int mx = 1; for(int j = 2; j <= N; j++) if(v[j] > v[mx]) mx = j; if(mx != ml) return 101; ml = mx; if(i == N-1){ return ml % 100; } return ml/100; } return 0; } pair<int, int> longest_path(vector<int> S){ int ans = S[S.size()-2]*100+S.back(); string c = to_string(ans); if(S.back() == 101) return {0, S.size()-1}; return {0, stoi(c)}; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...