Submission #956555

#TimeUsernameProblemLanguageResultExecution timeMemory
95655512345678Stations (IOI20_stations)C++17
5 / 100
599 ms1308 KiB
#include "stations.h"
#include <bits/stdc++.h>

using namespace std;

const int nx=1e3+5;

int st, cnt;
vector<int> d[nx], res;

void dfs(int u, int p)
{
    //cout<<"dfs "<<u<<' '<<p<<'\n';
    res[u]=cnt++;
    for (auto v:d[u]) if (v!=p) dfs(v, u);
}

std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) {
    for (int i=0; i<n; i++) d[i].clear();
    for (int i=0; i<n-1; i++) d[u[i]].push_back(v[i]), d[v[i]].push_back(u[i]);
    for (int i=0; i<n; i++) if (d[i].size()==1) st=i;
    res.resize(n);
    cnt=0;
    dfs(st, st);
    //for (int i=0; i<n; i++) cout<<"debug "<<i<<' '<<res[i]<<'\n';
	return res;
}

int find_next_station(int s, int t, std::vector<int> c) {
    if (c.size()==1) return c[0];
	if (t<s) return c[0];
    else return c[1];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...