Submission #1292824

#TimeUsernameProblemLanguageResultExecution timeMemory
1292824ChuanChenStations (IOI20_stations)C++20
0 / 100
3061 ms508 KiB
#include "stations.h"
#include <bits/stdc++.h>
using namespace std;


const int MAXN = 1e3+3;

vector<int> label(int n, int k, vector<int> u, vector<int> v){
	vector<int> labels(n);
	for (int i = 0; i < n; i++) {
		labels[i] = i;
 	}
	return labels;
}

unordered_set<int> getChild(int id){
	unordered_set<int> ans, l, r;
	ans.insert(id);
	if(2*id < 999){
		l = getChild(2*id+1);
	}
	if(2*id < 998){
		r = getChild(2*id+2);
	}
	
	for(int x : l) ans.insert(x);
	for(int x : r) ans.insert(x);
	l.clear();
	r.clear();
	
	return ans;
}

int find_next_station(int s, int t, vector<int> c){
	//menor que eu --> eh meu pai
	int pai = 0;
	unordered_set<int> fis[1010];
	for(int i : c){
		if(i < s) pai = i;
		else{
			fis[i] = getChild(i);
			if(fis[i].count(t)){
				// cerr << "ta no meu filho" << i << endl;	
				return i;
			}
		}
	}
	return pai;
}
#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...