제출 #1244539

#제출 시각아이디문제언어결과실행 시간메모리
1244539qwushaStations (IOI20_stations)C++20
5 / 100
305 ms516 KiB
#include "stations.h" #include <iostream> #include <bits/stdc++.h> #define fi first #define se second using namespace std; int inf = 1e9 + 7; vector<vector<int>> g; vector<int> label(int n, int k, vector<int> v, vector<int> u) { g.assign(n, {}); int end = -1, end2 = -1; for (int i = 0; i < n - 1; i++) { g[v[i]].push_back(u[i]); g[u[i]].push_back(v[i]); } for (int i = 0; i < n; i++) { if ( g[i].size() == 1 && end == -1) { end = i; } else if (g[i].size() == 1) { end2 = i; } } int cur = end; vector<int> res(n); int num = 0; int last = 0; while (cur != end2) { res[cur] = num; num++; if (cur == end) { last = cur; cur = g[cur][0]; } else { int tr = cur; cur = g[cur][0] + g[cur][1] - last; last = tr; } } res[cur] = num; return res; } int find_next_station(int s, int t, vector<int> c) { if (c.size() == 1) { return c[0]; } if (t > s) { return max(c[0], c[1]); } else { return min(c[0], c[1]); } }
#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...