100802024-03-26 16:53:16VargusElágazás nélküli úton levő települések (50 pont)cpp17Hibás válasz 25/50112ms9652 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ÖsszpontTesztVerdiktIdőMemória
base25/50
1Elfogadva0/03ms1956 KiB
2Elfogadva0/0112ms5256 KiB
3Hibás válasz0/23ms2568 KiB
4Hibás válasz0/22ms2664 KiB
5Elfogadva2/23ms2900 KiB
6Elfogadva2/22ms2880 KiB
7Elfogadva2/23ms3128 KiB
8Elfogadva2/24ms3728 KiB
9Elfogadva2/29ms4224 KiB
10Elfogadva2/217ms4504 KiB
11Elfogadva2/229ms5460 KiB
12Elfogadva2/235ms5900 KiB
13Hibás válasz0/34ms4900 KiB
14Hibás válasz0/38ms5076 KiB
15Hibás válasz0/314ms5184 KiB
16Hibás válasz0/327ms5284 KiB
17Hibás válasz0/352ms6200 KiB
18Hibás válasz0/365ms6508 KiB
19Hibás válasz0/379ms7212 KiB
20Elfogadva3/393ms8340 KiB
21Elfogadva3/3108ms9076 KiB
22Elfogadva3/3111ms9652 KiB