Submission #1212432

#TimeUsernameProblemLanguageResultExecution timeMemory
1212432nrg_studioDreaming (IOI13_dreaming)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
//#include "dreaming.h"
using namespace std;

#define ll long long
#define pb push_back
#define mp make_pair
#define pii pair<int,int>
#define f first
#define s second
#define chmin(a, b) a = min(a,b)
#define chmax(a, b) a = max(a,b)
#define FOR(i, a, b) for (int i = (a); i < (b); i++)
#define F0R(i, a) for (int i = 0; i < (a); i++)
#define all(x) x.begin(),x.end()
#define vec vector

const int MAX_N = 1e5;
vec<pii> adj[MAX_N];
int dist[MAX_N];
bool vis[MAX_N];
pii cent[MAX_N];

pii furthest(int cur, int par=-1, int len=0) {
    vis[cur] = true;
    pii mx = {len,cur};
    for (auto[x,w] : adj[cur]) {
        if (x!=par) {
            chmax(mx,furthest(x,cur,len+w));
        }
    } return mx;
}

int travelTime(int n, int m, int l, int a[], int b[], int t[]) {
    for (int i=0;i<m;i++) {
        adj[a[i]].pb({b[i],t[i]});
        adj[b[i]].pb({a[i],t[i]});
    }

    memset(vis,0,sizeof(vis));
    memset(dist,-1,sizeof(dist));
    pii rt = {0,0};

    int c = 0;
    for (int i=0;i<n;i++) {
        if (!vis[i]) {
            int d1 = furthest(i).s, d2 = furthest(d1).s;

            queue<pair<int,pii>> q;
            cent[c] = {INT_MAX,0};
            q.push({d1,{-1,0}}); q.push({d2,{-1,0}});
            while (q.size()) {
                auto[cur,z] = q.front(); q.pop();
                auto[par,len] = z;
                if (dist[cur]!=-1) {
                    chmin(cent[c],mp(max(len,dist[cur]),cur));
                }
                dist[cur] = len;
                for (auto[x,w] : adj[cur]) {
                    if (x!=par) {
                        q.push({x,{cur,len+w}});
                    }
                }
            }
            chmax(rt,cent[c]);
            c++;
        }
    }
    for (int i=0;i<c;i++) {
        if (cent[i]!=rt) {
            adj[cent[i].s].pb({rt.s,l});
            adj[rt.s].pb({cent[i].s,l});
        }
    }
    return furthest(furthest(0).s).f;
}

int main() {
    ios::sync_with_stdio(false); cin.tie(0);

    int n,m,l;cin >> n >> m >> l;
    int a[m], b[m], t[m];
    F0R(i,n) {cin >> a[i] >> b[i] >> t[i];}
    cout << travelTime(n,m,l,a,b,t);
}

Compilation message (stderr)

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