# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1192087 | alexdd | Stations (IOI20_stations) | C++20 | 305 ms | 528 KiB |
#include "stations.h"
#include <bits/stdc++.h>
using namespace std;
void check(bool bl)
{
if(bl==0)
while(1);
}
vector<int> con[1005];
int tout[1005];
int timer;
void dfs(int nod, int par)
{
for(int adj:con[nod])
{
if(adj==par)
continue;
dfs(adj,nod);
}
tout[nod] = timer++;
}
std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v)
{
for(int i=0;i<n;i++)
con[i].clear();
for(int i=0;i<u.size();i++)
{
con[u[i]].push_back(v[i]);
con[v[i]].push_back(u[i]);
}
/*int root=0;
for(int i=0;i<n;i++)
if(con[i].size() < con[root].size())
root = i;*/
timer=0;
dfs(0,-1);
vector<int> sol(n);
for(int i=0;i<n;i++)
sol[i] = tout[i];
return sol;
}
int find_next_station(int s, int t, std::vector<int> c)
{
if((int)c.size() == 1)
return c[0];
for(int i=1;i<c.size();i++)
check(c[i-1] <= c[i]);
if(t > s)
return c.back();
for(int i=0;i<c.size();i++)
if(t <= c[i])
return c[i];
}
/*
1
7 6
0 2
2 1
1 3
0 4
4 5
5 6
6
0 3 2
0 1 2
0 2 2
0 6 4
0 5 4
0 4 4
*/
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... |