40472023-03-10 13:10:39szabel26Elágazás nélküli úton levő települések (50 pont)cpp17Hibás válasz 25/5030ms7736 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ÖsszpontTesztVerdiktIdőMemória
base25/50
1Elfogadva0/03ms1808 KiB
2Elfogadva0/029ms4908 KiB
3Elfogadva2/22ms2220 KiB
4Hibás válasz0/22ms2332 KiB
5Elfogadva2/23ms2528 KiB
6Hibás válasz0/23ms2740 KiB
7Elfogadva2/23ms2984 KiB
8Elfogadva2/24ms3484 KiB
9Elfogadva2/26ms3944 KiB
10Elfogadva2/28ms4268 KiB
11Elfogadva2/216ms5200 KiB
12Elfogadva2/216ms5180 KiB
13Hibás válasz0/34ms4008 KiB
14Hibás válasz0/34ms4516 KiB
15Hibás válasz0/36ms4712 KiB
16Hibás válasz0/37ms4768 KiB
17Hibás válasz0/314ms5676 KiB
18Hibás válasz0/314ms5724 KiB
19Hibás válasz0/317ms6376 KiB
20Elfogadva3/328ms7116 KiB
21Elfogadva3/329ms7476 KiB
22Elfogadva3/330ms7736 KiB