Submission #1199918

#TimeUsernameProblemLanguageResultExecution timeMemory
1199918BelphegorStations (IOI20_stations)C++20
0 / 100
1 ms512 KiB
#include <bits/stdc++.h>
using namespace std;
int counter;
vector<int>tree[1005];
vector<int>labels;
void dfs(int cur,int par,int d){
	labels[cur] = ++counter;
	for(int nxt : tree[cur]){
		if(nxt == par) continue;
		dfs(nxt,cur,d^1);
	}
	cout<<cur<<" "<<labels[cur]<<" "<<counter<<'\n';
	if(d) labels[cur] = counter;
}
std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) {
	labels = vector<int>(n,-1);
	counter = -1;
	for(int i=0; i<n; i++) tree[i].clear();
	for(int i=0; i<u.size(); i++){
		int a = u[i],b = v[i];
		tree[a].emplace_back(b);
		tree[b].emplace_back(a);
	}
	dfs(0,-1,0);
	return labels;
}
int find_next_station(int s, int t, vector<int>c) {
  	if (s < c[0]) {
  		if (t < s || t >= c[c.size() - 1]) return c[c.size() - 1];
  		for (int i : c) if (i >= t) return i;
    	return c[c.size() - 1];
  	}
  	if (t > s || t <= c[0]) return c[0];
  	int ans = c[0];
  	for (int i : c) if (i <= t) ans = i;
  	return ans;
  }
#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...