| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1351740 | Jawad_Akbar_JJ | Stations (IOI20_stations) | C++17 | 3069 ms | 2162688 KiB |
#include <iostream>
#include <vector>
using namespace std;
const int N = 1<<10;
vector<int> nei[N], num;
int cur;
void dfs(int u, int p = -1, int h = 1){
if (h & 1)
num[u] = cur++;
for (int i : nei[u])
if (i != p)
dfs(i, u, h+1);
if (!(h & 1))
num[u] = cur++;
}
vector<int> label(int n, int k, vector<int> u, vector<int> v){
for (int i=0;i<n - 1;i++){
nei[u[i]].push_back(v[i]);
nei[v[i]].push_back(u[i]);
}
num.resize(n, 0);
dfs(0);
return num;
}
int find_next_station(int s, int t, vector<int> c){
if (s == 0){
for (int i : c)
if (t <= i)
return i;
}
if (s < c[0]){
if (t < s or t >= c.back())
return c.back();
for (int i : c)
if (t <= i)
return i;
}
if (c.size() == 0 or t < c[1] or t > s)
return c[0];
for (int i=c.size() - 1; i >= 0;i--)
if (t >= c[i])
return c[i];
}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... | ||||
