Submission #1147150

#TimeUsernameProblemLanguageResultExecution timeMemory
1147150alexddTowns (IOI15_towns)C++20
25 / 100
10 ms328 KiB
#include "towns.h"
#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9;
int n;
vector<int> calc_dist(int src)
{
    vector<int> dist(n);
    for(int i=0;i<n;i++)
        dist[i] = getDistance(src,i);
    return dist;
}
int hubDistance(int N, int sub)
{
    //int _ = getDistance(0,1);
    n = N;
    vector<int> dist0 = calc_dist(0);
    int cap1=0;
    for(int i=0;i<n;i++)
        if(dist0[i]>dist0[cap1])
            cap1=i;
    vector<int> dist1 = calc_dist(cap1);
    int cap2=0;
    for(int i=0;i<n;i++)
        if(dist1[i]>dist1[cap2])
            cap2=i;
    vector<int> dist2 = calc_dist(cap2);
    int mnm = dist1[cap2];
    for(int i=0;i<n;i++)
    {
        int injos = dist1[i] + dist2[i] - dist1[cap2];
        assert(injos%2==0);
        injos/=2;
        mnm = min(mnm, max(dist1[i], dist2[i]) - injos);
    }
    return mnm;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...