Submission #1267158

#TimeUsernameProblemLanguageResultExecution timeMemory
1267158lambiguinhoDreaming (IOI13_dreaming)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
using namespace std;
pair<int,int> dfs(int a, int ant, int d, vector<vector<pair<int,int>>>& v, vector<pair<int,int>>& pais, vector<bool>& vis) {
    pair<int,int> resp = {d,a};
    pais[a] = {d,ant};
    vis[a] = 1;
    for (auto [c,b] : v[a]) {
        if (b != ant) {
            resp = max(resp,dfs(b,a,d+c,v,pais,vis));
        }
    }
    return resp;
}

pair<int,int> centro(int a, int b, int d, vector<pair<int,int>>& pais) {
    int val = d;
    while (pais[a].first > d/2) {
        val = pais[a].first;
        a = pais[a].second;
    }
    return {d,min(val,d - pais[a].first)};
}

int travelTime(int n, int m, int l, int inp1[], int inp2[], int inpval[]) {
    vector<vector<pair<int,int>>> v(n);
    vector<pair<int,int>> pais(n,{0,-1});
    vector<bool> vis(n,0);
    for (int i = 0; i < m; i++) {
        int a = inp1[i], b = inp2[i], c = inpval[i];
        v[a].push_back({c,b});
        v[b].push_back({c,a});
    }
    vector<pair<int,int>> diam;
    int resp = 0, len = 0;
    for (int i = 0; i < n; i++) {
        if (!vis[i]) {
            len++;
            auto [_,a] = dfs(i,-1,0,v,pais,vis);
            auto [d,b] = dfs(a,-1,0,v,pais,vis);
            diam.push_back(centro(b,a,d,pais));
            resp = max(resp,diam[len-1].first);
        }
    }
    sort(diam.begin(),diam.end());
    if (len > 2) {
        resp = max(resp,diam[len-2].second + diam[len-3].second + 2*l);
    }
    if (len > 1) {
        resp = max(resp, diam[len-1].second + diam[len-2].second + l);
    }
    return resp;
}

int main() {
    int n,m,l;
    cin >> n >> m >> l;
    int inp1[m], inp2[m], inpval[m];
    for (int i = 0; i < m; i++) {
        int a,b,c;
        cin >> a >> b >> c;
        inp1[i] = a; inp2[i] = b; inpval[i] = c;
    }
    cout << travelTime(n,m,l,inp1,inp2,inpval);
    return 0;
}

Compilation message (stderr)

/usr/bin/ld: /tmp/ccKkLRcj.o: in function `main':
grader.c:(.text.startup+0x0): multiple definition of `main'; /tmp/ccrkc0nN.o:dreaming.cpp:(.text.startup+0x0): first defined here
/usr/bin/ld: /tmp/ccKkLRcj.o: in function `main':
grader.c:(.text.startup+0xc4): undefined reference to `travelTime'
collect2: error: ld returned 1 exit status