Submission #361716

#TimeUsernameProblemLanguageResultExecution timeMemory
361716David_MDreaming (IOI13_dreaming)C++14
0 / 100
32 ms7768 KiB
#include "dreaming.h"
#include<bits/stdc++.h>
using namespace std;
int d[3][1<<17],f[1<<17],e,D,F,S,i;
vector<pair<int,int> >v[1<<17];
void dfs(int x,int o){
	f[x]++;
	if(o<2&&d[o][x]>=D)e=x,D=d[o][x];
	if(o>1)D=min(D,max(d[1][x],d[2][x]));
	for(auto y:v[x])if(f[y.first]<o)d[o][y.first]=x+y.second,dfs(y.first,o);
}
int travelTime(int N,int M,int L,int A[],int B[],int T[]){
    while(M--)v[A[i]].push_back({B[i],T[i]}),v[B[i]].push_back({A[i],T[i]});
    while(N--)if(!f[N])dfs(N,0),dfs(e,1),dfs(e,2),F=min(D,F),S=max(D,S),D=0;
	return F+S+L;
}
#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...