Submission #411603

#TimeUsernameProblemLanguageResultExecution timeMemory
411603MDarioDreaming (IOI13_dreaming)C++11
100 / 100
117 ms18472 KiB
#include "dreaming.h" #include<bits/stdc++.h> using namespace std; typedef long long ll; #define F first #define S second #define pb(x) push_back(x) const ll mod=1e9+7; ll r=0, c1, c2, c3; vector<pair<ll, ll>> v[100001]; vector<ll> v1; pair<ll, ll> a1, a2, p[100001]; bool b[100001]; pair<ll, ll> dfs(ll xf, ll axf){ b[xf]=1; pair<ll, ll> a3={xf, 0}, a4; for(auto i : v[xf]){ if(i.F!=axf){ p[i.F]={xf, i.S}; a4=dfs(i.F, xf); if(a4.S+i.S>a3.S){ a3={a4.F, a4.S+i.S}; } } } return a3; } int travelTime(int n, int m, int l, int A[], int B[], int T[]) { for(int i=0; i<m; i++){ c1=A[i]; c2=B[i]; c3=T[i]; v[c1].push_back({c2, c3}); v[c2].push_back({c1, c3}); } for(int i=0; i<n; i++){ if(!b[i]){ a1=dfs(i, i); a2=dfs(a1.F, a1.F); c1=a2.S; c2=0; c3=c1; r=max(r, a2.S); while(a2.F!=a1.F){ c1-=p[a2.F].S; c2+=p[a2.F].S; c3=min(c3, max(c1, c2)); a2.F=p[a2.F].F; } v1.push_back(c3); } } if(v1.size()==1)return r; sort(v1.begin(), v1.end()); reverse(v1.begin(), v1.end()); r=max(r, v1[0]+v1[1]+l); for(int i=2; i<v1.size(); i++){ r=max(r, v1[0]+v1[i]+l); r=max(r, v1[1]+v1[i]+l+l); } return r; }

Compilation message (stderr)

dreaming.cpp: In function 'int travelTime(int, int, int, int*, int*, int*)':
dreaming.cpp:57:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   57 |     for(int i=2; i<v1.size(); i++){
      |                  ~^~~~~~~~~~
#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...