Submission #871524

#TimeUsernameProblemLanguageResultExecution timeMemory
871524TAhmed33Speedrun (RMI21_speedrun)C++17
0 / 100
19 ms5748 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++) { if (adj[i][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...