Submission #1351740

#TimeUsernameProblemLanguageResultExecution timeMemory
1351740Jawad_Akbar_JJStations (IOI20_stations)C++17
0 / 100
3069 ms2162688 KiB
#include <iostream>
#include <vector>

using namespace std;
const int N = 1<<10;
vector<int> nei[N], num;
int cur;

void dfs(int u, int p = -1, int h = 1){
	if (h & 1)
		num[u] = cur++;
	for (int i : nei[u])
		if (i != p)
			dfs(i, u, h+1);
	if (!(h & 1))
		num[u] = cur++;
}

vector<int> label(int n, int k, vector<int> u, vector<int> v){
	for (int i=0;i<n - 1;i++){
		nei[u[i]].push_back(v[i]);
		nei[v[i]].push_back(u[i]);
	}

	num.resize(n, 0);
	dfs(0);

	return num;
}

int find_next_station(int s, int t, vector<int> c){
	if (s == 0){
		for (int i : c)
			if (t <= i)
				return i;
	}
	if (s < c[0]){
		if (t < s or t >= c.back())
			return c.back();
		for (int i : c)
			if (t <= i)
				return i;
	}
	if (c.size() == 0 or t < c[1] or t > s)
		return c[0];
	for (int i=c.size() - 1; i >= 0;i--)
		if (t >= c[i])
			return c[i];
}

Compilation message (stderr)

stations.cpp: In function 'int find_next_station(int, int, std::vector<int>)':
stations.cpp:49:1: warning: control reaches end of non-void function [-Wreturn-type]
   49 | }
      | ^
#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...