Submission #1229216

#TimeUsernameProblemLanguageResultExecution timeMemory
1229216Adomas08Stations (IOI20_stations)C++20
0 / 100
1574 ms2162688 KiB
#include "stations.h"
#include <bits/stdc++.h>

using namespace std;

int cur = 0; 
int parent[1000], secparent[1000];
vector<int> children[1000];
vector<int> secchildren[1000];

void dfs(int s, vector <int> adj[1000], vector<int> &labels, vector <bool> visited){
	labels[s] = cur;
	cur++;
	vector <int> v;
	for (auto u : children[s]){
		for (auto v : children[u]){
			dfs(v, adj, labels, visited);
		}
		labels[u] = cur;
		cur++;
	}
}


std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) {
	std::vector<int> labels(n);
	vector <int> con[1000];
	vector <bool> visited(n, 0);
	for (int i = 0; i < u.size(); i++){
		con[u[i]].push_back(v[i]);
		con[v[i]].push_back(u[i]);
	}
	queue <int> q;
	q.push(0);
	bool visit[n];
	for (int i = 0; i < n; i++) visit[i] = 0; 
	parent[0] = 0;
	while (!q.empty()){
		int s = q.front();
		q.pop();
		visit[s] = 1;
		for (auto u : con[s]){
			if (!visit[u]){
				q.push(u);
				parent[u] = s;
				children[s].push_back(u);
			}
		}
	}
	for (int i = 1; i < n; i++){
		if (children[i].size() != 0){
			for (auto u : children[i]){
				secparent[u] = parent[i];
				secchildren[parent[i]].push_back(u);
			}
		}
	}
	dfs(0, con, labels, visited);
	return labels;
}

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