Submission #1255978

#TimeUsernameProblemLanguageResultExecution timeMemory
1255978AvianshMigrations (IOI25_migrations)C++20
16 / 100
30 ms1480 KiB
#include "migrations.h"

#include <bits/stdc++.h>

using namespace std;

const int maxn = 10000;

int par[maxn];

int ret;
int mxdep;

void dfs(int st, vector<int>g[], int p, int dep){
    if(dep>mxdep){
        ret=st;
        mxdep=dep;
    }
    for(int i : g[st]){
        if(i==p)
            continue;
        dfs(i,g,st,dep+1);
    }
}

int send_message(int n, int i, int Pi) {
    par[i]=Pi;
    if(i==n-1){
        //it is done.
        vector<int>g[n];
        for(int i = 1;i<n;i++){
            g[i].push_back(par[i]);
            g[par[i]].push_back(i);
        }
        dfs(0,g,-1,0);
        return ret-2;
    }
    return 0;
}

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