Submission #906249
Source Code Expand
#include <iostream>
#include <fstream>
#include <queue>
#include <vector>
#include <set>
#include <algorithm>
using namespace std;
int main()
{
#ifdef LOCAL
ifstream cin("input.txt");
ofstream cout("output.txt");
#else
ios_base::sync_with_stdio(false);
cin.tie(NULL);
#endif // LOCAL
int n;
cin >> n;
vector<int> a(n);
for (int i = 0; i < n; ++i)
cin >> a[i];
vector<int> cnt(n + 1, 0);
int diam = 0;
for (int i = 0;i < n; ++i)
{
if (a[i] > diam)
diam = a[i];
++cnt[a[i]];
}
bool possible = true;
for (int i = diam / 2 + 1; i <= diam; ++i)
{
if (cnt[i] < 2)
possible = false;
}
int top = diam / 2 + diam % 2;
if (diam % 2 == 0 && cnt[top] != 1)
{
possible = false;
}
if (diam % 2 == 1 && cnt[top] != 2)
possible = false;
for (int i = 0; i < top; ++i)
{
if (cnt[i] != 0)
{
possible = false;
break;
}
}
if (possible)
{
cout << "Possible\n";
}
else
{
cout << "Impossible\n";
}
#ifdef LOCAL
cin.close();
cout.close();
#endif // LOCAL
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | C - Tree Restoring |
| User | Kamilot |
| Language | C++14 (GCC 5.4.1) |
| Score | 700 |
| Code Size | 1288 Byte |
| Status | AC |
| Exec Time | 3 ms |
| Memory | 256 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 700 / 700 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | example0, example1, example2, example3, example4, example5 |
| All | almostline0, almostline1, almostline2, almostline3, can0, can1, can2, can3, can4, can5, can6, deg0, deg1, deg2, deg3, example0, example1, example2, example3, example4, example5, handmade0, line0, line1, line2, line3, ng10, ng11, ng12, ng13, ng20, ng21, ng22, ng23, plus0, plus1, plus2, plus3, rand0, rand1, rand2, star0, star1, star2, star3 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| almostline0 | AC | 3 ms | 256 KiB |
| almostline1 | AC | 3 ms | 256 KiB |
| almostline2 | AC | 3 ms | 256 KiB |
| almostline3 | AC | 3 ms | 256 KiB |
| can0 | AC | 3 ms | 256 KiB |
| can1 | AC | 3 ms | 256 KiB |
| can2 | AC | 3 ms | 256 KiB |
| can3 | AC | 3 ms | 256 KiB |
| can4 | AC | 2 ms | 256 KiB |
| can5 | AC | 3 ms | 256 KiB |
| can6 | AC | 2 ms | 256 KiB |
| deg0 | AC | 3 ms | 256 KiB |
| deg1 | AC | 3 ms | 256 KiB |
| deg2 | AC | 3 ms | 256 KiB |
| deg3 | AC | 3 ms | 256 KiB |
| example0 | AC | 3 ms | 256 KiB |
| example1 | AC | 3 ms | 256 KiB |
| example2 | AC | 2 ms | 256 KiB |
| example3 | AC | 3 ms | 256 KiB |
| example4 | AC | 3 ms | 256 KiB |
| example5 | AC | 3 ms | 256 KiB |
| handmade0 | AC | 3 ms | 256 KiB |
| line0 | AC | 3 ms | 256 KiB |
| line1 | AC | 3 ms | 256 KiB |
| line2 | AC | 3 ms | 256 KiB |
| line3 | AC | 3 ms | 256 KiB |
| ng10 | AC | 3 ms | 256 KiB |
| ng11 | AC | 3 ms | 256 KiB |
| ng12 | AC | 3 ms | 256 KiB |
| ng13 | AC | 3 ms | 256 KiB |
| ng20 | AC | 3 ms | 256 KiB |
| ng21 | AC | 3 ms | 256 KiB |
| ng22 | AC | 3 ms | 256 KiB |
| ng23 | AC | 3 ms | 256 KiB |
| plus0 | AC | 3 ms | 256 KiB |
| plus1 | AC | 3 ms | 256 KiB |
| plus2 | AC | 3 ms | 256 KiB |
| plus3 | AC | 3 ms | 256 KiB |
| rand0 | AC | 3 ms | 256 KiB |
| rand1 | AC | 3 ms | 256 KiB |
| rand2 | AC | 3 ms | 256 KiB |
| star0 | AC | 3 ms | 256 KiB |
| star1 | AC | 3 ms | 256 KiB |
| star2 | AC | 3 ms | 256 KiB |
| star3 | AC | 3 ms | 256 KiB |