Submission #871521

#TimeUsernameProblemLanguageResultExecution timeMemory
871521TAhmed33Speedrun (RMI21_speedrun)C++17
0 / 100
3518 ms1248 KiB
#include <bits/stdc++.h>
#include "speedrun.h"
using namespace std;
void assignHints (int subtask, int n, int a[], int b[]) {
	setHintLen(n);
	bool adj[n + 1][n + 1]; memset(adj, 0, sizeof(adj));
	for (int i = 1; i < n; i++) {
		adj[a[i]][b[i]] = adj[b[i]][a[i]] = 1;
	}
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= n; j++) {
			setHint(i, j, adj[i][j]);
		}
	}
	return;
}
vector <vector <int>> adj;
int n;
void dfs (int pos, int par) {
	for (int j = 1; j <= n; j++) {
		if (j == par || pos == j) continue;
		if (adj[pos][j] == 0) continue;
		if (adj[pos][j] == 1) {
			goTo(j); dfs(j, pos); goTo(pos);
		}
		if (adj[pos][j] == -1) {
			int x = goTo(j);
			adj[j][pos] = adj[pos][j] = x;
			if (x) {
				dfs(j, pos);
				goTo(pos);
			} 
		}
	}
}
void speedrun (int subtask, int N, int start) {
	adj.clear(); 
	n = N;
	adj = vector <vector <int>> (n + 1, vector <int> (n + 1));
	for (int i = 1; i <= n; i++) for (int j = 1; j <= n; j++) adj[i][j] = -1;
	dfs(start, -1);
	return;
}
#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...