137892025-01-08 18:13:49csdavidElágazás nélküli úton levő települések (50 pont)cpp17Runtime error 23/5028ms1336 KiB
#include <iostream>
#include <vector>
#include <queue>
//#include <fstream>
using namespace std;

struct telepules{
    vector<int> ut;
    int o=0;
    bool megoldas=0;
};

int main()
{
    //ifstream f("be2.txt");
    queue<int> q;
    int n, m, x, y, ossz=0;
    cin >> n >> m;
    telepules a[n];
    for(int i=0; i<m; i++){
        cin >> x >> y;
        --x;
        --y;
        a[x].ut.push_back(y);
        a[x].o++;
        a[y].ut.push_back(x);
        a[y].o++;
    }
    y=0;
    for(int i=0; i<n; i++){
        if(a[i].o==1){
            q.push(i);
        }
    }
    int elozo, elso;
    while(!q.empty()){
        x=q.front();
        q.pop();
        while(a[x].megoldas){
            x=q.front();
            q.pop();
        }
        elso=x;
        elozo=x;
        x=a[x].ut[0];
        a[x].megoldas=1;
        ossz++;
        while(a[x].o==2){
            ossz++;
            y=a[x].ut[0];
            if(y==elozo){
                y=a[x].ut[1];
            }
            elozo=x;
            x=y;
            a[x].megoldas=1;
        }
        if(a[x].o==1){
            a[elso].megoldas=1;
            ossz++;
        }
    }
    cout << ossz << '\n';
    for(int i=0; i<n; i++){
        if(a[i].megoldas){
            cout << i+1 << ' ';
        }
    }
    cout << '\n';
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base23/50
1Accepted0/01ms316 KiB
2Accepted0/028ms1328 KiB
3Runtime error0/21ms316 KiB
4Wrong answer0/21ms316 KiB
5Accepted2/21ms316 KiB
6Runtime error0/21ms316 KiB
7Accepted2/21ms316 KiB
8Accepted2/23ms380 KiB
9Accepted2/24ms548 KiB
10Accepted2/27ms564 KiB
11Accepted2/213ms820 KiB
12Accepted2/214ms820 KiB
13Wrong answer0/32ms316 KiB
14Wrong answer0/34ms508 KiB
15Wrong answer0/34ms564 KiB
16Wrong answer0/34ms692 KiB
17Wrong answer0/312ms820 KiB
18Wrong answer0/313ms760 KiB
19Wrong answer0/316ms900 KiB
20Accepted3/326ms1256 KiB
21Accepted3/328ms1252 KiB
22Accepted3/327ms1336 KiB