Submission #1297789

#TimeUsernameProblemLanguageResultExecution timeMemory
1297789nathlol2Stations (IOI20_stations)C++20
0 / 100
23 ms488 KiB
#include "stations.h" #include <bits/stdc++.h> using namespace std; void dfs(int u, int p, int c, int ml, vector<vector<int>> &g, vector<int> &labels){ labels[u] = ml + c++; for(auto v : g[u]){ if(v != p) dfs(v, u, c, ml, g, labels); } } std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) { vector<vector<int>> g(1000); for(int i = 0;i<n - 1;i++){ g[u[i]].push_back(v[i]); g[v[i]].push_back(u[i]); } std::vector<int> labels(n); for(int i = 0;i<n;i++){ if(g[i].size() == 3){ labels[i] = 0; dfs(g[i][0], i, 1, 0, g, labels); dfs(g[i][1], i, 1, 10000, g, labels); dfs(g[i][2], i, 1, 20000, g, labels); } } return labels; } int find_next_station(int s, int t, std::vector<int> c) { if(t == 0){ return c[0]; } if(s == 0){ if(t < 5000) return c[0]; if(t < 15000) return c[1]; return c[2]; } int c1, c2; if(s < 5000) c1 = 0; else if(s < 15000) c1 = 1; else c1 = 2; if(t < 5000) c2 = 0; else if(t < 15000) c2 = 1; else c2 = 2; if(c1 == c2){ if(s < t){ return c[1]; }else{ return c[0]; } }else{ return c[0]; } }
#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...