10080 2024. 03. 26 16:53:16 Vargus Elágazás nélküli úton levő települések (50 pont) cpp17 Hibás válasz 25/50 112ms 9652 KiB
#include <iostream>
#include <queue>
#include <algorithm>
#define ll long long

using namespace std;

struct adat
{
    bool lat = false;
    vector <ll> sz;
};
vector <adat> x;
deque <ll> poz;

ll p = 0;
void ell(ll csp)
{
    x[csp].lat = true;
    ll db = 0;
    for (auto& e : x[csp].sz)
    {
        if (!x[e].lat)
        {
            ++db;
            p = e;
        }
    }
    if (db == 1)
    {
        x[p].lat = true;
        poz.push_back(p);
        ell(p);
    }
}

void melyseg(ll csp)
{
    if (x[csp].sz.size() > 1)
        return;
    else
    {
        ell(csp);
    }
}

int main()
{
    ll n, m, i;
    cin >> n >> m;
    x.resize(n + 1);
    for (i = 1; i <= m; ++i)
    {
        ll cs1, cs2;
        cin >> cs1 >> cs2;
        x[cs1].sz.push_back(cs2);
        x[cs2].sz.push_back(cs1);
    }
    for (ll i = 1; i <= n; ++i)
    {
        for (ll j = 1; j <= n; ++j)
            x[j].lat = false;
        melyseg(i);
    }
    cout << poz.size() << "\n";
    sort(poz.begin(), poz.end());
    for (auto& e : poz)
        cout << e << " ";

    return 0;
}

Részfeladat Összpont Teszt Verdikt Idő Memória
base 25/50
1 Elfogadva 0/0 3ms 1956 KiB
2 Elfogadva 0/0 112ms 5256 KiB
3 Hibás válasz 0/2 3ms 2568 KiB
4 Hibás válasz 0/2 2ms 2664 KiB
5 Elfogadva 2/2 3ms 2900 KiB
6 Elfogadva 2/2 2ms 2880 KiB
7 Elfogadva 2/2 3ms 3128 KiB
8 Elfogadva 2/2 4ms 3728 KiB
9 Elfogadva 2/2 9ms 4224 KiB
10 Elfogadva 2/2 17ms 4504 KiB
11 Elfogadva 2/2 29ms 5460 KiB
12 Elfogadva 2/2 35ms 5900 KiB
13 Hibás válasz 0/3 4ms 4900 KiB
14 Hibás válasz 0/3 8ms 5076 KiB
15 Hibás válasz 0/3 14ms 5184 KiB
16 Hibás válasz 0/3 27ms 5284 KiB
17 Hibás válasz 0/3 52ms 6200 KiB
18 Hibás válasz 0/3 65ms 6508 KiB
19 Hibás válasz 0/3 79ms 7212 KiB
20 Elfogadva 3/3 93ms 8340 KiB
21 Elfogadva 3/3 108ms 9076 KiB
22 Elfogadva 3/3 111ms 9652 KiB