230602026-01-16 11:27:57MrkzElágazás nélküli úton levő települések (50 pont)cpp17Accepted 50/5012ms1076 KiB
#include <bits/stdc++.h>

using namespace std;
int N,M,x,y,db;

vector<vector<short>> graf;
int megoldas[10000]={0};

int main()
{
    istream *in;

    ifstream f("graf.in");
    //in = &f;
    in = &cin;
    ios::sync_with_stdio(0);
    cin.tie(nullptr);
    (*in)>>N>>M;
    graf.assign(N + 1, vector<short>());

    for(int i=1;i<=M;i++){
        (*in)>>x>>y;
        x--; y--;
        graf[x].push_back(y);
        graf[y].push_back(x);
    }

    for(int i=0;i<N;i++){
        if(graf[i].size()==1){
            int s=i;
            int prev=-1;
            while(graf[s].size()<3){
                int tmp = s;
                s=graf[s][0];
                if(s==prev){
                    s=graf[tmp][1];
                }
                megoldas[s]++;
                if(graf[s].size()==1)
                    break;
                prev=tmp;
            }

        }
    }
    int db=0;
    for(int i=0;i<N;i++){
        if(megoldas[i]>0)
            db++;
    }
    cout<<db<<endl;
    for(int i=0;i<N; i++)
        if(megoldas[i]>0){
            cout<<i+1<<" ";
        }

}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/02ms316 KiB
2Accepted0/012ms1076 KiB
3Accepted2/22ms316 KiB
4Accepted2/22ms316 KiB
5Accepted2/21ms316 KiB
6Accepted2/21ms316 KiB
7Accepted2/21ms316 KiB
8Accepted2/22ms316 KiB
9Accepted2/23ms316 KiB
10Accepted2/24ms836 KiB
11Accepted2/26ms564 KiB
12Accepted2/26ms564 KiB
13Accepted3/32ms508 KiB
14Accepted3/32ms316 KiB
15Accepted3/32ms384 KiB
16Accepted3/33ms748 KiB
17Accepted3/36ms760 KiB
18Accepted3/36ms720 KiB
19Accepted3/37ms924 KiB
20Accepted3/310ms1056 KiB
21Accepted3/312ms1004 KiB
22Accepted3/312ms988 KiB