Submission #728457

#TimeUsernameProblemLanguageResultExecution timeMemory
728457Rasoul006Dreaming (IOI13_dreaming)C++17
14 / 100
76 ms47948 KiB
#include "dreaming.h" #include <bits/stdc++.h> #define endl "\n" #define F first #define S second #define pb push_back typedef long long ll; using namespace std; const int N = 1e6+5; const long long oo = 1e18 ; vector <pair <ll,ll>> v[N] ; ll n , m , ans , best , mx , dis[N] , len ; bool vis[N] ; void dfs (ll u , ll p , ll cost) { dis[u] = cost ; vis[u] = true ; for (auto it : v[u]) { if (it.F != p) dfs(it.F , u , cost + it.S); } } bool dfs2 (ll u , ll p , ll cost , ll gol) { bool is = false ; for (auto it : v[u]) { if (it.F != p) is |= dfs2(it.F , u , cost + it.S , gol) ; } is |= (u == gol); if (is) best = min (best , max(cost , len-cost)); return is ; } ll p1 , p2 ; ll far (ll p) { mx = 0 ; ll ret ; for (int i = 1 ; i<=n ; i++) dis[i] = 0 ; dfs(p , p , 0) ; for (int i = 1 ; i<=n ; i++) { if (dis[i] > mx) ret = i , mx = dis[i] ; dis[i] = 0 ; } return ret ; } ll get (ll p) { p1 = far(p); p2 = far(p1); len = mx ; best = oo ; dfs2(p1 , p1 , 0 , p2) ; return best ; } int travelTime(int N, int M, int L, int A[], int B[], int T[]) { n = N ; m = M ; for (int i = 0 ; i<m ; i++) { v[B[i]].pb({A[i] , T[i]}); v[A[i]].pb({B[i] , T[i]}); } ans += get(1) ; ll bans = len ; for (int i = 1 ; i<=n ; i++) { if (!vis[i]) { ans += get(i) ; break ; } } bans = max(bans , len) ; return max(bans , ans + L) ; }

Compilation message (stderr)

dreaming.cpp: In function 'll far(ll)':
dreaming.cpp:75:12: warning: 'ret' may be used uninitialized in this function [-Wmaybe-uninitialized]
   75 |     return ret ;
      |            ^~~
#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...