제출 #1308938

#제출 시각아이디문제언어결과실행 시간메모리
1308938minh30082008기지국 (IOI20_stations)C++20
0 / 100
395 ms560 KiB
#include "stations.h" #include<bits/stdc++.h> #define fi first #define se second #define FOR(i, k, n) for(int i = k; i <= n; i++) #define FOR1(i, k, n) for(int i = k; i >= n; i--) #define pb push_back #define fastio ios::sync_with_stdio(0); cin.tie(0); cout.tie(0) #define vi vector<int> #define pii pair<int, int> #define vii vector<pii> #define ll long long #define vll vector<ll> #define pll pair<ll, ll> #define re return 0 #define mii map<int, int> #define input "ALONE.inp" #define output "ALONE.out" #define rf freopen(input, "r", stdin); freopen(output, "w", stdout) using namespace std; const int maxn = 1e4 + 5; const int mod = 1e9 + 7; const int base = 998244353; const int base1 = 31; const int SZ = 320; const ll INF = 1e18; void add(int &a, int b) { a += b; if(a >= mod) a -= mod; if(a < 0) a += mod; } mt19937 rd(chrono::steady_clock::now().time_since_epoch().count()); int rand(int l, int r) { return uniform_int_distribution<int>(l, r) (rd); } static int max_label = 0; static int r, n, k, q; static std::vector<int> u, v, labels, answers; static std::map<int, int> reverse_labels; static std::vector<std::vector<int>> adjlist; static int s, t, w; static std::vector<int> c; int depth[1005]; vi adj[1005]; int cnt; vi ID; void DFS(int u, int par) { if(depth[u] % 2 == 0) ID[u] = cnt++; for(auto v : adj[u]) { if(v == par) continue; depth[v] = depth[u] + 1; DFS(v, u); } if(depth[u] % 2 == 1) ID[u] = cnt++; } vi label(int n, int k, vi u, vi v) { FOR(i, 0, n - 1) adj[i].clear(); cnt = 0; ID.resize(n); FOR(i, 0, u.size() - 1) { adj[u[i]].pb(v[i]); adj[v[i]].pb(u[i]); } depth[0] = 0; DFS(0, -1); return ID; } int find_next_station(int s, int t, vi c) { if(s < c[0]) { sort(c.begin(), c.end()); if(t < s) return c.back(); int res = lower_bound(c.begin(), c.end(), t) - c.begin(); return c[res]; } else { sort(c.begin(), c.end(), greater<int>()); if(t > s) return c[0]; int res = upper_bound(c.begin(), c.end(), t) - c.begin() - 1; return c[res]; } }
#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...