# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1235248 | badge881 | Spring cleaning (CEOI20_cleaning) | C++20 | 1095 ms | 836 KiB |
#include <bits/stdc++.h>
using namespace std;
signed main()
{
int n, q;
scanf("%d%d", &n, &q);
for (int i = 0; i < n - 1; i++)
{
int a, b;
scanf("%d%d", &a, &b);
}
for (int i = 0; i < q; i++)
{
int d;
scanf("%d", &d);
vector<int> nodeAdded(n - 1, 0);
for (int i = 0; i < d; i++)
{
int node;
scanf("%d", &node);
nodeAdded[node - 2]++;
}
int ans = 0, nbleaf = 0, out = -2;
for (auto &&i : nodeAdded)
{
if (i == 0)
{
nbleaf++, ans++;
out = max(1, out + 1);
continue;
}
else
nbleaf += i;
if (i % 2 == 1)
ans += i + 1;
else
ans += i + 2, out += 2;
}
if (nbleaf % 2 == 1 or out % 2 == 1)
{
printf("-1\n");
continue;
}
if (out == 0)
ans += 2;
printf("%d\n", ans);
}
}
컴파일 시 표준 에러 (stderr) 메시지
# | 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... |