# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
310318 | Peacher29 | Stations (IOI20_stations) | C++14 | 1025 ms | 1024 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 "stations.h"
#include <bits/stdc++.h>
using namespace std;
class pont{
public:
vector<int> v;
int id=-1;
void dfs(bool mi);
};
int dd;
vector<pont> p;
void pont::dfs(bool mi){
if(id==-1){
if(mi){
id=-2;
} else {
id=++dd;
}
for(int i : v){
p[i].dfs(!mi);
}
if(mi){
id=++dd;
}
}
}
vector<int> label(int n, int k, vector<int> u, vector<int> v) {
p.clear();
p.resize(n);
dd=-1;
for(int i=0;i<n-1;i++){
p[u[i]].v.push_back(v[i]);
p[v[i]].v.push_back(u[i]);
}
p[0].dfs(0);
vector<int> er(n);
for(int i=0;i<n;i++){
er[i] = p[i].id;
//cout << er[i] << ' ';
}
return er;
}
int find_next_station(int s, int t, vector<int> c) {
if(s==t){
exit(255);
}
if(c.size()==1){
return c[0];
}
sort(c.begin(), c.end());
/*cout << s << "->" << t << '\n';
for(int i : c){
cout << i << ' ';
}
cout << '\n';*/
if(s<c[0]){
if(t<s || c[c.size()-2]<t){
return c[c.size()-1];
} else {
for(int i=0;i<=c.size()-2;i++){
if(t<=c[i]){
return c[i];
}
}
}
} else {
if(t>s || c[1]>t){
return c[0];
} else {
for(int i=c.size()-1;i>=(s!=0);i--){
if(c[i]<=t){
return c[i];
}
}
}
}
exit(255);
}
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... |