# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
413244 | losmi247 | Stations (IOI20_stations) | C++14 | 1278 ms | 528 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1005;
int deg[N];
vector <int> g[N];
vector <int> label(int n,int k,vector <int> u,vector <int> v){
for(int i = 0; i < n; i++){
deg[i] = 0;
g[i].clear();
}
for(int i = 0; i < n-1; i++){
deg[u[i]]++;
deg[v[i]]++;
g[u[i]].push_back(v[i]);
g[v[i]].push_back(u[i]);
}
bool prvi = 1;
for(int i = 0; i < n; i++) if(deg[i] > 2) prvi = 0;
if(prvi){
int cnt = 0;
vector <int> l(n,0);
queue <pair<int,int>> q;
for(int i = 0; i < n; i++){
if(deg[i] == 1){
q.push({i,-1});
break;
}
}
while(!q.empty()){
int u = q.front().first,par = q.front().second;
l[u] = cnt++;
q.pop();
for(auto v : g[u]){
if(v == par) continue;
q.push({v,u});
}
}
return l;
}
bool drugi = 1;
for(int i = 0; i < n-1; i++){
if(u[i] != i+1 || v[i] != i/2) drugi = 0;
}
if(drugi){
vector <int> l(n,0);
for(int i = 0; i < n; i++) l[i] = i;
return l;
}
}
int find_next_station(int s,int t,vector <int> c){
if((s == 0 && c.size() == 1 && c[0] == 1) || (c.size() == 1 && c[0] == s-2) || (c.size() == 2 && c[0] == s-1 && c[1] == s+1)){
if(s < t){
return s+1;
}
else{
return s-1;
}
}
bool drugi = 1;
for(auto f : c){
if(f != (s&1 ? s/2 : (s-1)/2) && f != 2*s+1 && f != 2*s+2) drugi = 0;
}
if(drugi){
int nd1 = s,nd2 = t;
vector <int> putt = {t};
vector <int> puts = {s};
while(nd1 != nd2){
if(nd1 > nd2){ nd1 = (nd1&1 ? nd1/2 : (nd1-1)/2); puts.push_back(nd1); }
else{ nd2 = (nd2&1 ? nd2/2 : (nd2-1)/2); putt.push_back(nd2); }
}
if(nd1 == s){
return putt[putt.size()-2];
}
if(nd1 == t){
return puts[1];
}
return puts[1];
}
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |