Submission #81476

#TimeUsernameProblemLanguageResultExecution timeMemory
81476farukkastamonudaDreaming (IOI13_dreaming)C++14
100 / 100
96 ms16376 KiB
#include "dreaming.h" #include <bits/stdc++.h> #define fi first #define se second #define lo long long #define inf 1000000009 #define md 1000000007 #define li 100005 #define mp make_pair #define pb push_back using namespace std; int vis[li],mn,M[li],M2[li],node[li],ss; vector< pair<int,int> > v[li]; void f(int x){ vis[x]=1; int t; for(int i=0;i<(int)v[x].size();i++){ int go=v[x][i].fi; int knr=v[x][i].se; if(vis[go]==1) continue; f(go); t=M[go]+knr; if(M[x]<t){ M2[x]=M[x]; M[x]=t; node[x]=go; } else if(M2[x]<t){ M2[x]=t; } } ss=max(ss,M[x]+M2[x]); } void g(int x,int p,int t){ mn=min(mn,max(M[x],t)); for(int i=0;i<(int)v[x].size();i++){ int go=v[x][i].fi; int knr=v[x][i].se; if(go==p) continue; int a=max(t,node[x]==go?M2[x]:M[x]); g(go,x,a+knr); } } int travelTime(int n,int m,int l,int *A,int *B,int *T){ int t,x,xx,xxx; for(int i=0;i<m;i++){ v[A[i]].pb(mp(B[i],T[i])); v[B[i]].pb(mp(A[i],T[i])); } x=-inf,xx=-inf,xxx=-inf; for(int i=0;i<n;i++){ if(vis[i]==1) continue; mn=1e9; f(i); g(i,-1,0); if(x<mn){ xxx=xx; xx=x; x=mn; } else if(xx<mn){ xxx=xx; xx=mn; } else if(xxx<mn){ xxx=mn; } } return max(ss,max(x+xx+l,xx+xxx+l+l)); }

Compilation message (stderr)

dreaming.cpp: In function 'int travelTime(int, int, int, int*, int*, int*)':
dreaming.cpp:45:6: warning: unused variable 't' [-Wunused-variable]
  int t,x,xx,xxx;
      ^
#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...