74012024-01-08 14:09:13madvirElágazás nélküli úton levő települések (50 pont)cpp11Hibás válasz 36/50300ms13044 KiB
#include <iostream>
#include <set>
#include <iterator>

using namespace std;

int main()
{
    int n, m, honnan, hova;
    cin >> n >> m;
    set<int> tel[n+1], zsak, elerheto;
    set<int>::iterator ptr, ptr2, ptr3;

    for(int i=1; i<=m; i++) {
        cin >> honnan;
        cin >> hova;
        tel[honnan].insert(hova);
        tel[hova].insert(honnan);
    }

    for(int i=1; i<=n; i++) {
        if(tel[i].size()==1) {
            zsak.insert(i);
        }
    }

    int tart=0, utolso;
    for(ptr=zsak.begin(); ptr!=zsak.end(); ptr++) {
        ptr2=tel[*ptr].begin();
        tart=*ptr2;
        elerheto.insert(tart);
        while(tel[tart].size()==2) {

            ptr2=tel[tart].begin();
            if(*ptr2==*ptr) {
                ptr2=tel[tart].end();
                tel[tart].erase(*ptr);
                ptr2=tel[tart].begin();
            }
            tart=*ptr2;
            elerheto.insert(tart);
        }
    }


    cout << elerheto.size() << endl;

    //ptr=elerheto.end();
    //utolso=*ptr;
    //elerheto.erase(utolso);

    for(ptr=elerheto.begin(); ptr!=elerheto.end(); ptr++) {
        cout << *ptr << " ";
    }
    //cout << utolso;


    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base36/50
1Elfogadva0/03ms1708 KiB
2Elfogadva0/039ms10372 KiB
3Hibás válasz0/23ms2140 KiB
4Elfogadva2/23ms2352 KiB
5Elfogadva2/23ms2568 KiB
6Elfogadva2/23ms2812 KiB
7Elfogadva2/23ms2864 KiB
8Elfogadva2/24ms3704 KiB
9Elfogadva2/27ms4372 KiB
10Elfogadva2/212ms5448 KiB
11Elfogadva2/219ms7404 KiB
12Elfogadva2/219ms7544 KiB
13Elfogadva3/34ms3756 KiB
14Időlimit túllépés0/3300ms3056 KiB
15Hibás válasz0/37ms4888 KiB
16Időlimit túllépés0/3254ms3392 KiB
17Elfogadva3/316ms7372 KiB
18Hibás válasz0/317ms7860 KiB
19Elfogadva3/321ms9148 KiB
20Elfogadva3/339ms12476 KiB
21Elfogadva3/341ms12948 KiB
22Elfogadva3/341ms13044 KiB