Submission #1157609

#TimeUsernameProblemLanguageResultExecution timeMemory
1157609zhasynStations (IOI20_stations)C++20
5 / 100
299 ms576 KiB
#include "stations.h" #include <bits/stdc++.h> #define pb push_back #define pf push_front using namespace std; #define F first #define S second typedef long long ll; #define pii pair <int, int> #define pll pair <ll, ll> typedef long double ld; const ll N = 2000 + 100, M = 4096 + 10, len = 21, inf = 1e18; const ll mod = 1e9 + 7; ll um(ll a, ll b){ return (1LL * a * b) % mod; } ll subr(ll a, ll b){ return ((1LL * a - b) % mod + mod) % mod; } int pos[N]; vector <int> q[N]; void dfs1(int v, int pred, int cnt){ pos[v] = cnt; for(int i = 0; i < (int)q[v].size(); i++){ if(q[v][i] == pred) continue; dfs1(q[v][i], v, cnt + 1); } } void dfs2(int v, int pred, int cur){ if(cur == -1){ pos[v] = 0; cur = 1; for(int i = 0; i < (int)q[v].size(); i++){ dfs2(q[v][i], v, cur); cur += 1000; } return; } pos[v] = cur; for(int i = 0; i < (int)q[v].size(); i++){ if(q[v][i] == pred) continue; dfs2(q[v][i], v, cur + 1); } } vector<int> label(int n, int k, vector<int> u, vector<int> v) { vector <int> labels(n); for(int i = 0; i < (int)u.size(); i++){ q[u[i]].pb(v[i]); q[v[i]].pb(u[i]); } bool w2 = false; for(int i = 0; i < n; i++){ if((int)q[i].size() >= 3){ dfs2(i, -1, -1); w2 = true; break; } } if(w2 == false){ for(int i = 0; i < n; i++){ if((int)q[i].size() == 1){ dfs1(i, -1, 1); break; } } } for(int i = 0; i < n; i++){ labels[i] = pos[i]; q[i].clear(); } return labels; } int find_next_station(int s, int t, vector<int> c) { if(s == 0) return (t - 1)/1000 + 1; int from = (s - 1)/1000 + 1, to = (s - 1)/1000 + 1000; if(from <= t && t <= to){ if(t > s) return s + 1; else return s - 1; } if(s == from) return 0; return s - 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...