74002024-01-08 14:06:37madvirElágazás nélküli úton levő települések (50 pont)cpp17Hibás válasz 36/50300ms11924 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/03ms1812 KiB
2Elfogadva0/039ms10440 KiB
3Hibás válasz0/23ms2152 KiB
4Elfogadva2/23ms2256 KiB
5Elfogadva2/23ms2468 KiB
6Elfogadva2/23ms2648 KiB
7Elfogadva2/23ms2740 KiB
8Elfogadva2/24ms3576 KiB
9Elfogadva2/27ms4240 KiB
10Elfogadva2/210ms5044 KiB
11Elfogadva2/219ms7056 KiB
12Elfogadva2/219ms7100 KiB
13Elfogadva3/34ms3368 KiB
14Időlimit túllépés0/3300ms2548 KiB
15Hibás válasz0/37ms4244 KiB
16Időlimit túllépés0/3300ms3052 KiB
17Elfogadva3/317ms6728 KiB
18Hibás válasz0/317ms7032 KiB
19Elfogadva3/321ms7988 KiB
20Elfogadva3/337ms11400 KiB
21Elfogadva3/341ms11924 KiB
22Elfogadva3/339ms11924 KiB