Submission #1367742

#TimeUsernameProblemLanguageResultExecution timeMemory
1367742elotelo966Stations (IOI20_stations)C++20
0 / 100
3086 ms2162688 KiB
#include "stations.h"
#include <bits/stdc++.h>
using namespace std;

#define pb push_back
#define fi first
#define se second
#define FOR for(int i=1;i<=n;i++)

#define lim 1005

vector<int> adj[lim];

int uzak;

int ind[lim];

inline void gez(int node,int kim,int ata){
	ind[node]=kim;
	for(auto go:adj[node]){
		if(go==ata)continue;
		gez(go,kim+1,node);
	}
}

inline void dfs(int node,int ata){
	uzak=node;
	for(auto go:adj[node]){
		if(go==ata)continue;
		dfs(go,node);
	}
}

std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) {
	std::vector<int> labels(n);
	for(int i=0;i<n;i++){
		adj[u[i]].pb(v[i]);
		adj[v[i]].pb(u[i]);
	}
	dfs(0,-1);
	
	gez(uzak,0,uzak);
	for(int i=0;i<n;i++){
		labels[i]=ind[i];
	}
	
	for(int i=0;i<n;i++){
		adj[i].clear();
	}
	return labels;
}

int find_next_station(int s, int t, std::vector<int> c) {
	if(c.size()==1)return c[0];
	if(s<t){
		if(c[0]>c[1])return c[0];
		return c[1];
	}
	else{
		if(c[0]>c[1])return c[1];
		return c[0];
	}
}

//~ int main(){
	//~ int n,k;
	//~ cin>>n>>k;
	//~ vector<int> u,v;
	//~ for(int i=1;i<n;i++){
		//~ int x,y;cin>>x>>y;
		//~ u.pb(x);
		//~ v.pb(y);
	//~ }
	//~ vector<int> tut=label(n,k,u,v);
	//~ for(auto a:tut)cout<<a<<" ";
	//~ cout<<'\n';
	//~ int q;cin>>q;
	//~ while(q--){
		//~ int s,t;cin>>s>>t;
		//~ int kac;cin>>kac;
		//~ vector<int> tt;
		//~ for(int i=0;i<kac;i++){
			//~ int x;cin>>x;
			//~ tt.pb(x);
		//~ }
		//~ cout<<find_next_station(s,t,tt)<<'\n';
	//~ }
//~ }
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...