4047 2023. 03. 10 13:10:39 szabel26 Elágazás nélküli úton levő települések (50 pont) cpp17 Hibás válasz 25/50 30ms 7736 KiB
// zsakfalvak.cpp : This file contains the 'main' function. Program execution begins and ends there.
//

#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>ans,v,zs;

ll i, n, m, akt, a, b;

void szelessegi(ll zsak)
{
    while (!v.empty())
    {
        akt = v.front();
        v.pop_front();
        for (auto& e : x[akt].sz)
        {
            if (!x[e].lat && e != zsak)
            {
                if (x[e].sz.size() <= 2)
                {
                    v.push_back(e);
                    ans.push_back(e);
                }
                else
                {
                    ans.push_back(e);
                    return;
                }
                x[e].lat = true;
            }
        }
    }
}

int main()
{
    cin >> n >> m;
    x.resize(n + 1);
    for (i = 1; i <= m; ++i)
    {
        cin >> a >> b;
        x[a].sz.push_back(b);
        x[b].sz.push_back(a);
    }

    for (i = 1; i <= n; ++i)
    {
        if (x[i].sz.size() == 1)
        {
            v.push_back(i);
            zs.push_back(i);
            szelessegi(i);
        }
    }

    for (auto& e : zs)
    {
        if (x[e].lat)
        {
            ans.push_back(zs.front());
        }
    }

    sort(ans.begin(), ans.end());

    cout << ans.size() << "\n";
    for (auto& e : ans)
    {
        cout << e << " ";
    }
}

/*
6 5
1 2
2 3
3 4
4 5
5 6
*/
// Run program: Ctrl + F5 or Debug > Start Without Debugging menu
// Debug program: F5 or Debug > Start Debugging menu

// Tips for Getting Started: 
//   1. Use the Solution Explorer window to add/manage files
//   2. Use the Team Explorer window to connect to source control
//   3. Use the Output window to see build output and other messages
//   4. Use the Error List window to view errors
//   5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
//   6. In the future, to open this project again, go to File > Open > Project and select the .sln file
Részfeladat Összpont Teszt Verdikt Idő Memória
base 25/50
1 Elfogadva 0/0 3ms 1808 KiB
2 Elfogadva 0/0 29ms 4908 KiB
3 Elfogadva 2/2 2ms 2220 KiB
4 Hibás válasz 0/2 2ms 2332 KiB
5 Elfogadva 2/2 3ms 2528 KiB
6 Hibás válasz 0/2 3ms 2740 KiB
7 Elfogadva 2/2 3ms 2984 KiB
8 Elfogadva 2/2 4ms 3484 KiB
9 Elfogadva 2/2 6ms 3944 KiB
10 Elfogadva 2/2 8ms 4268 KiB
11 Elfogadva 2/2 16ms 5200 KiB
12 Elfogadva 2/2 16ms 5180 KiB
13 Hibás válasz 0/3 4ms 4008 KiB
14 Hibás válasz 0/3 4ms 4516 KiB
15 Hibás válasz 0/3 6ms 4712 KiB
16 Hibás válasz 0/3 7ms 4768 KiB
17 Hibás válasz 0/3 14ms 5676 KiB
18 Hibás válasz 0/3 14ms 5724 KiB
19 Hibás válasz 0/3 17ms 6376 KiB
20 Elfogadva 3/3 28ms 7116 KiB
21 Elfogadva 3/3 29ms 7476 KiB
22 Elfogadva 3/3 30ms 7736 KiB