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
AC × 6
AC × 45
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