Submission #1192053

#TimeUsernameProblemLanguageResultExecution timeMemory
1192053alexddStations (IOI20_stations)C++20
5 / 100
308 ms544 KiB
#include "stations.h" #include <bits/stdc++.h> using namespace std; void check(bool bl) { if(bl==0) while(1); } vector<int> con[1005]; vector<int> sol; int timer; void dfs(int nod, int par) { sol[nod] = timer++; for(int adj:con[nod]) { if(adj==par) continue; dfs(adj,nod); } } std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) { sol.resize(n); for(int i=0;i<n;i++) con[i].clear(); for(int i=0;i<n-1;i++) { con[u[i]].push_back(v[i]); con[v[i]].push_back(u[i]); } int root=0; for(int i=0;i<n;i++) if(con[i].size() < con[root].size()) root = i; timer=0; dfs(root,-1); return sol; } int find_next_station(int s, int t, std::vector<int> c) { if((int)c.size() == 1) return c[0]; for(int i=1;i<c.size();i++) check(c[i-1] <= c[i]); if(c[0] == s+1)///s e radacina { check(s==0); check(t > s); for(int i=1;i<c.size();i++) if(c[i] > t) return c[i-1]; return c.back(); } else { check(c[1] == s+1); if(t < s) return c[0]; assert(c[1] <= t); for(int i=2;i<c.size();i++) if(c[i] > t) return c[i-1]; return c.back(); } }
#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...