| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1370085 | Sam_a17 | 9월 (APIO24_september) | C++20 | 385 ms | 21668 KiB |
#include "september.h"
#include <bits/stdc++.h>
using namespace std;
const int maxN = 1e5 + 10;
int tin[maxN], tout[maxN];
vector<int> adj[maxN];
int p[maxN];
bool deleted[maxN];
int timer;
set<pair<int, int>> st;
void dfs(int node, int parent)
{
tin[node] = timer++;
p[node] = parent;
st.insert({tin[node], node});
for (int i : adj[node])
{
if (i == parent)
continue;
dfs(i, node);
}
tout[node] = timer - 1;
}
int covered = 0;
void del(int node)
{
st.erase({tin[node], node});
deleted[node] = true;
covered++;
}
int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S)
{
timer = 0;
covered = 0;
st.clear();
for (int i = 0; i < N; i++)
{
adj[i].clear();
deleted[i] = false;
}
for (int i = 0; i < N; ++i)
{
if (F[i] != -1)
{
adj[F[i]].push_back(i);
adj[i].push_back(F[i]);
}
}
dfs(0, -1);
vector<int> f = S[0];
int ans = 0;
for (int i = 0; i < f.size(); ++i)
{
int node = f[i];
if (deleted[node])
{
covered--;
continue;
}
if (!covered)
{
++ans;
}
while (true)
{
auto it = st.lower_bound({tin[node], -1});
if (it == st.end() || it->first > tout[node])
{
break;
}
del(it->second);
}
covered--;
}
return ans;
}
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
