Submission #517090

#TimeUsernameProblemLanguageResultExecution timeMemory
517090Ai7081Stations (IOI20_stations)C++17
16 / 100
895 ms660 KiB
#include <bits/stdc++.h> using namespace std; const int N = 1005; int cnt, cnt2; vector<int> ret; vector<vector<int>> adj; void dfs(int v, int p) { ret[v] = 1000*cnt2 + cnt; cnt2++; for (auto to : adj[v]) { if (to != p) { dfs(to, v); } } return; } vector<int> label(int n, int k, vector<int> u, vector<int> v) { adj.assign(n, vector<int>()); for (int i=0; i<(int)u.size(); i++) { adj[u[i]].push_back(v[i]); adj[v[i]].push_back(u[i]); } for (int i=0; i<n; i++) { if (adj[i].size() > 2) { ret.assign(n, 0); ret[i] = 0; cnt = 1; for (auto x : adj[i]) { cnt2 = 0; dfs(x, i); cnt++; } return ret; } } cnt = 1; ret.assign(n, 0); ret[0] = 0; for (auto x : adj[0]) { cnt2 = 0; dfs(x, 0); cnt++; } return ret; } int find_next_station(int s, int t, vector<int> c) { if (!s) return t % 1000; if (s%1000 != t%1000) return max(0, s - 1000); if (t > s) return s + 1000; return max(0, s - 1000); }
#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...