| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1303748 | opeleklanos | Stations (IOI20_stations) | C++20 | 0 ms | 0 KiB |
#include <iostream>
#include <vector>
#include <algorithm>
#include <math.h>
#include "stations.h"
using namespace std;
vector<vector<int>> adj;
vector<int> label (int n, int k, vector<int> u, vector<int> v){
adj.assign(n, {});
for(int i = 0; i<n-1; i++){
adj[u[i]].push_back(v[i]);
adj[v[i]].push_back(u[i]);
}
vector<int> label(n, -1);
//vector<int> vis(n, 0);
for(int i = 0; i<n-1; i++){
if(adj[i].size() == 1){
//label[i] = 1;
int indx = 1;
int c = i;
do{
label[c] = indx;
indx++;
c = (label[adj[c][0]] == -1)?adj[c][0] : adj[c][1];
}while(adj[c].size() != 1);
label[c] = indx;
break;
}
}
return label;
}
int find_next_station(int s, int t, vector<int> c){
if(s < t) return c[0]>s ? c[0] : c[1];
else return c[0]<s ? c[0] : c[1];
}
// int main(void){
// // freopen("input.txt", "r", stdin);
// int n; cin>>n;
// vector<int> u(n-1, 0);
// vector<int> v(n-1, 0);
// for(int i = 0; i<n-1; i++) cin>>u[i]>>v[i];
// label(n, 100000000, u, v);
// //cout<<find_next_station(3, 6);
// }
