제출 #1229017

#제출 시각아이디문제언어결과실행 시간메모리
1229017marsasgrgStations (IOI20_stations)C++20
0 / 100
3 ms560 KiB
#include "stations.h"
#include <vector>
using namespace  std;

vector<vector<int>> adj;
int N;
pair<short int, vector<int>> dfs(const int x, const int goal, vector<int>& curPath, vector<bool>& vis) {
	if (x == goal) return {1, curPath};
	for (int i : adj[x]) {
		if (vis[i]) continue;
		curPath.push_back(i);
		vis[i] = true;
		if (auto ans = dfs(i, goal, curPath, vis); ans.first != -1) return  ans;
		curPath.pop_back();
		vis[i] = false;
	}
	return {-1, curPath};
}

std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) {
	N = n;
	vector<int> labels(n);
	adj.resize(n);
	for (int i = 0; i < n; i++) {
		labels[i] = i;
	}
	for (int i = 0; i < n -1; i++) {
		adj[u[i]].push_back(v[i]);
		adj[v[i]].push_back(u[i]);

	}
	return labels;
}

int find_next_station(int s, int t, std::vector<int> c) {
	vector<int> path;
	vector<bool> vis(N, false);
	return dfs(s, t, path, vis).second[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...