Submission #391624

#TimeUsernameProblemLanguageResultExecution timeMemory
391624ljubaStations (IOI20_stations)C++17
100 / 100
1136 ms1012 KiB
#include "stations.h" #include <vector> #include <bits/stdc++.h> using namespace std; const int mxN = 1100; vector<int> adj[mxN]; std::vector<int> labels; int timer = 0; void dfs(int s, int p, int pa) { if(pa^1) labels[s] = timer++; for(auto e : adj[s]) { if(e == p) continue; dfs(e, s, pa^1); } if(pa) labels[s] = timer++; } std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) { for(int i = 0; i < n; ++i) { adj[i].clear(); } timer = 0; for(int i = 0; i < n-1; ++i) { adj[u[i]].push_back(v[i]); adj[v[i]].push_back(u[i]); } labels.resize(n); dfs(0, -1, 0); for(auto z : labels) cerr << z << " "; cerr << endl; return labels; } int find_next_station(int s, int t, std::vector<int> c) { sort(c.begin(), c.end()); if(s < c[0]) { //in ostali out for(auto e : c) { if(t >= s && t <= e) return e; } return c.back(); } else { //out ostali in reverse(c.begin(), c.end()); for(auto e : c) { if(t <= s && t >= e) return e; } 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...