# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1173080 | thecrazycandy | September (APIO24_september) | C++20 | 1 ms | 540 KiB |
#include <bits/stdc++.h>
using namespace std;
int nw = 1;
vector <int> g[2001];
int tin[2001], tout[2001];
void dfs (int v, int p) {
tin[v] = nw;
for (auto i : g[v]) {
if (i != p) dfs(i, v);
}
tout[v] = nw;
nw++;
}
int solve (int n, int m, vector <int> v, vector <vector <int>> a) {
int cnt = 0;
for (int i = 1; i < n; i++) {
g[v[i]].push_back(i);
}
for (int i = 0; i < n - 1; i++) {
int ind = 0;
int idx = 0, mn = 1e9 + 1, mx = -1;
for (int j = i + 1; j < n - 1; j++) {
if (tin[a[0][i]] <= tin[a[0][j]] && tout[a[0][i]] >= tout[a[0][j]]) {
ind = max(ind, j);
}
}
cnt++;
if (ind == 0) continue;
for (int j = i + 1; j <= ind; j++) {
if (tin[a[0][i]] >= tin[a[0][j]] && tout[a[0][i]] <= tout[a[0][j]] && tin[a[0][j]] <= mn && tout[a[0][j]] >= mx) {
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |