Submission #479496

#TimeUsernameProblemLanguageResultExecution timeMemory
479496YuisuyunoCrocodile's Underground City (IOI11_crocodile)C++14
46 / 100
151 ms262148 KiB
//Nguyen Huu Hoang Minh #include <bits/stdc++.h> //#include "crocodile.h" #define sz(x) int(x.size()) #define all(x) x.begin(),x.end() #define reset(x) memset(x, 0,sizeof(x)) #define pb push_back #define mp make_pair #define fi first #define se second #define remain(x) if (x > MOD) x -= MOD #define ii pair<int, int> #define iiii pair< ii , ii > #define viiii vector< iiii > #define vi vector<int> #define vii vector< ii > #define bit(x, i) (((x) >> (i)) & 1) #define Task "test" using namespace std; typedef long double ld; const int inf = 1e10; const int minf = -1e10; vector<ii> g[100005]; int dp[100005]; bool is[100005]; void dfs(int u, int pre){ vector<int> ans; if (is[u]) dp[u] = 0; else dp[u] = inf; for(auto i : g[u]){ int v = i.fi; int uv = i.se; if (v!=pre){ dfs(v,u); if (dp[v]!=inf) ans.pb(dp[v]+uv); } } sort(all(ans)); if (ans.size()>1) dp[u] = ans[1]; } int travel_plan(int N, int M, int R[][2], int L[], int K, int P[]) { for(int i=0; i<M; i++){ int u = R[i][0]; int v = R[i][1]; int z = L[i]; g[u].push_back(ii(v,z)); g[v].push_back(ii(u,z)); } for(int i=0; i<K; i++){ is[P[i]] = 1; } dfs(0,0); return dp[0]; }

Compilation message (stderr)

crocodile.cpp:23:17: warning: overflow in conversion from 'double' to 'int' changes value from '1.0e+10' to '2147483647' [-Woverflow]
   23 | const int inf = 1e10;
      |                 ^~~~
crocodile.cpp:24:18: warning: overflow in conversion from 'double' to 'int' changes value from '-1.0e+10' to '-2147483648' [-Woverflow]
   24 | const int minf = -1e10;
      |                  ^~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...