Submission #1230045

#TimeUsernameProblemLanguageResultExecution timeMemory
1230045kaltspielerhy기지국 (IOI20_stations)C++20
0 / 100
308 ms600 KiB
#include "stations.h"
#include <bits/stdc++.h>
using namespace std;

int compteur = 0;
vector<vector<int>> graphe;
vector<int> labels;
void dfs(int noeud, int profondeur) {
	if (profondeur%2 == 0) {
		labels[noeud] = compteur;
		compteur++;
	}
	else {
		labels[noeud] = compteur;
	}

	for (int iVoisin : graphe[noeud]) {
		if (labels[iVoisin] == -1) dfs(iVoisin, profondeur+1);
	}

	if (profondeur%2 == 1) {
		labels[noeud] = compteur;
		compteur++;
	}
}

vector<int> label(int n, int k, vector<int> u, vector<int> v) {
	labels.assign(n, -1);
	graphe.assign(n, {});

	for (int i = 0; i < n-1; i++) {
		graphe[u[i]].push_back(v[i]);
		graphe[v[i]].push_back(u[i]);
	}

	dfs(0, 0);

	return labels;
}

int find_next_station(int s, int t, vector<int> c) {
// 	c.push_back(s);
// 	int in, out;
// 	if (c[0] > s) {
// 		sort(c.rbegin(), c.rend());
// 		in = s;
// 		if (s == 0)
// 			out = c[0];
// 		else 
// 		  out = c[1];
// 	}
// 	else {
// 		sort(c.begin(), c.end());
// 		in = c[1];
// 		out = s;
// 	}

// 	if (t < in || t > out) {
// 		return c[0];
// 	}

// 	int idx = 0;
// 	while (idx < c.size() && t >= c[idx]) idx++;

// 	if (c[0] > s) {
// 		return c[idx];
// 	}
// 	return c[idx-1];
return 0;
}
#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...