Submission #402642

#TimeUsernameProblemLanguageResultExecution timeMemory
402642Dan4LifeStations (IOI20_stations)C++17
0 / 100
1091 ms532 KiB
#include "stations.h"
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
vector<int> adj[1001];
int lab = 0;
void dfs(int s, vector<int> &col, int p=-1)
{
    col[s]=lab, lab++;
    for(auto u : adj[s])
    {
        if(u==p) continue;
        dfs(u, col, s);
    }
}

vector<int> label(int n, int k, vector<int> a, vector<int> b)
{
    vector<int> col(n);
    for(int i = 0; i < n; i++) adj[i].clear();
	for (int i = 0; i < n-1; i++) {
		adj[a[i]].pb(b[i]);
		adj[b[i]].pb(a[i]);
	}
	for(int i = 0; i < n; i++){
        if(adj[i].size()==1){
            dfs(i, col, -1); break;
        }
	}
	return col;
}

int find_next_station(int s, int t, vector<int> c)
{
	if(c.size()==1)return c[0];
	for(int i = 0; i < (int)c.size(); i++)
        if(c[i]==t)return c[i];
	if(t<s)return c[0];
	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...