제출 #1303184

#제출 시각아이디문제언어결과실행 시간메모리
1303184SabaKharebava이주 (IOI25_migrations)C++20
16 / 100
30 ms1212 KiB
#include<bits/stdc++.h>

using namespace std;

#define pb push_back

int p[10001];

int send_message(int N, int i, int Pi) {
    p[i] = Pi;
    
    if (i == N-1) {
        vector<vector<int>> graph(10001);
        for (int i = N; i >= 1; i--)
            graph[p[i]].pb(i);
        vector<int> depth(10001, 0);
        auto dfs = [&](auto &dfs, int u, int p, int dep = 0) -> void {
            depth[u] = dep;
            for (int e : graph[u])
                if (e != p)
                    dfs(dfs, e, u, dep+1);
        };
        dfs(dfs, 0, 0);
        int mx = 1;
        for (int i = 2; i <= N; i++) {
            if (depth[i] > depth[mx])
                mx = i;
        }
        return max(0, mx-2);
    }
    return 0;
}

pair<int, int> longest_path(vector<int> S) {
    return make_pair(0, min((int)S.size()-1, S.back()+2));
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...