Submission #502661

#TimeUsernameProblemLanguageResultExecution timeMemory
502661NintsiChkhaidzeDreaming (IOI13_dreaming)C++14
100 / 100
122 ms25944 KiB
#include "dreaming.h" #include <bits/stdc++.h> #define s second #define f first #define pb push_back #define ll long long using namespace std; const int N = 100005; vector <pair<int,ll> > v[N]; vector <ll> vec; int fix[N],I; ll D,R,dis[N][5]; void dfs(int x,ll d,int par,int k){ fix[x] = 1; if (d > D) {I = x,D = d;} for (int j=0;j<v[x].size();j++){ int to = v[x][j].f,w = v[x][j].s; if (to == par) continue; if (k) dis[to][k] = dis[x][k] + w; if (k == 2) { R = min(R,max(dis[x][1],dis[x][2])); // cout<<"x = "<<x<<" "<<dis[x][1]<<" "<<dis[x][2]<<endl; } dfs(to,d + w,x,k); } } bool cmp(int a,int b){ if (a > b) return 1; return 0; } int travelTime(int n, int m, int L, int A[], int B[], int T[]) { for (int i = 0; i < m; i++){ v[A[i]].pb({B[i],T[i]}); v[B[i]].pb({A[i],T[i]}); } ll ans=0; for (int i = 0; i < n; i++){ if (fix[i])continue; if (!v[i].size()){ fix[i]=1; vec.pb(0); continue; } D = 0; dfs(i,0,i,0); D = 0; int ind = I; dfs(ind,0,ind,1); D = 0; dfs(ind,0,ind,0); D = 0; R = 1e9; dfs(I,0,I,2); ans = max(D,ans); vec.pb(R); } sort(vec.begin(),vec.end(),cmp); if (vec.size() >= 2) ans = max(ans,vec[0] + vec[1] + L); if (vec.size() >= 3) ans = max(ans,vec[1] + vec[2] + 2*L); return ans; }

Compilation message (stderr)

dreaming.cpp: In function 'void dfs(int, long long int, int, int)':
dreaming.cpp:18:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   18 |  for (int j=0;j<v[x].size();j++){
      |               ~^~~~~~~~~~~~
#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...