Submission #1018290

#TimeUsernameProblemLanguageResultExecution timeMemory
1018290gutzzyTraffic (IOI10_traffic)C++17
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
#include "traffic.h"
using namespace std;

vector<int> dp;
vector<vector<int>> lst;
pair<int,int> ans;

int calc(int nodo, int padre, vector<int> &p){
    if(dp[nodo]!=-1) return dp[nodo];
    int res = p[nodo];
    for(auto vecino:lst[nodo]){
        if(vecino!=padre) res += calc(vecino,nodo,p);
    }
    dp[nodo] = res;
    return dp[nodo];
}

void dfs(int nodo, int padre, vector<int> &p){
    dp[padre] = -1;
    int res = 0;
    for(auto vecino:lst[nodo]){
        res = max(res, calc(vecino,nodo,p));
    }
    //cout << "arena: " << nodo << " res: " << res << endl;
    if(res<ans.second){
        //cout << "update!   new arena: " << nodo << " " << res << endl;
        ans.second = res;
        ans.first = nodo;
    }
    for(auto vecino:lst[nodo]){
        if(vecino!=padre) dfs(vecino,nodo,p);
    }
    return;
    
}

int LocateCentre(int n, vector<int> p, vector<int> s, vector<int> d){
    dp = vector<int>(n,-1);
    ans.first = 0;
    ans.second = 2e9;
    lst = vector<vector<int>>(n,vector<int>());
    for(int i=0;i<n-1;i++){
        lst[s[i]].push_back(d[i]);
        lst[d[i]].push_back(s[i]);
    }
    dfs(0,0,p);
    return ans.first;
    
}

/*
int main(){
    cout << LocateCentre(5,{10,10,10,20,20},{0,1,2,3},{2,2,3,4}) << endl;

    return 0;
}
*/

Compilation message (stderr)

/usr/bin/ld: /tmp/ccT0SSvp.o: in function `main':
grader.cpp:(.text.startup+0xe1): undefined reference to `LocateCentre(int, int*, int*, int*)'
collect2: error: ld returned 1 exit status