Submission #330850

#TimeUsernameProblemLanguageResultExecution timeMemory
330850man_in_dangerTraffic (IOI10_traffic)C++14
100 / 100
1866 ms241284 KiB
//#pragma GCC optimize("Ofast") //#pragma GCC target("avx,avx2,fma") //#pragma GCC optimization ("unroll-loops") #include<bits/stdc++.h> using namespace std; #define pb push_back #define mk make_tuple #define f first #define s second #define speedup ios_base::sync_with_stdio(false); cin.tie(NULL); typedef long long ll; typedef pair<int, int> PII; const ll mod = 1e9+7; const ll inf = 1e18; const int inf2 = 1e9; vector<int> adj[1000005]; vector<ll> v[1000005]; int vis[1000005], d[1000005]; ll tot; ll dfs1(int u){ vis[u] = 1; ll ret = 0; for(int i = 0; i < adj[u].size(); i++){ int ve = adj[u][i]; if(!vis[ve]){ ll r = dfs1(ve); ret += r; v[u].pb(r); //cout << u << " " << ve << " " << r << "\n"; } } ret += d[u]; return ret; } ll dfs2(int u){ vis[u] = 1; ll ret = 0; for(int i = 0; i < adj[u].size(); i++){ int ve = adj[u][i]; if(!vis[ve]){ ll r = dfs2(ve); ret += r; v[ve].pb(tot - r); } } ret += d[u]; return ret; } int LocateCentre(int N, int P[], int S[], int D[]){ int i, j; for(i = 0; i < N - 1; i++){ adj[S[i]].pb(D[i]); adj[D[i]].pb(S[i]); d[i] = P[i]; } d[i] = P[i]; tot = dfs1(0); memset(vis, 0, sizeof vis); dfs2(0); ll mi = inf; int ans = 0; for(i = 0; i < N; i++){ ll mx = 0; for(j = 0; j < v[i].size(); j++){ mx = max(v[i][j], mx); } if(mx < mi){ mi = mx; ans = i; } } return ans; } /*int main() { speedup; int n, i; cin >> n; int p[n], s[n], d[n]; for(i = 0; i < n; i++){ cin >> p[i]; } for(i = 0; i < n - 1; i++){ cin >> s[i]; } for(i = 0; i < n - 1; i++){ cin >> d[i]; } cout <<LocateCentre(n, p, s, d) << "\n"; return 0; } */

Compilation message (stderr)

traffic.cpp: In function 'll dfs1(int)':
traffic.cpp:30:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   30 |  for(int i = 0; i < adj[u].size(); i++){
      |                 ~~^~~~~~~~~~~~~~~
traffic.cpp: In function 'll dfs2(int)':
traffic.cpp:45:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   45 |  for(int i = 0; i < adj[u].size(); i++){
      |                 ~~^~~~~~~~~~~~~~~
traffic.cpp: In function 'int LocateCentre(int, int*, int*, int*)':
traffic.cpp:72:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   72 |   for(j = 0; j < v[i].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...