9942022-02-20 07:35:33Szin AttilaHálózati biztonság (50)cpp14Hibás válasz 0/50168ms19696 KiB
#include <bits/stdc++.h>
using namespace std;

int n,m,k;
vector<vector<int> > g;
vector<int> mo;
vector<bool> volt;
set<int> curr;

bool dfs(int x) {

    int cnt = 0;
    curr.insert(x);
    for(int sz : g[x]) {
        if(!volt[sz] && g[sz].size() >= k) {
            volt[sz] = true;
            if(dfs(sz)) {
                cnt++;
            }
        }
        else if(curr.find(sz) != curr.end()) cnt++;
    }
    if(cnt < k) {
        curr.erase(x);
        return false;
    }
    return true;
}

int main()
{
    cin >> n >> m >> k;
    g.resize(n+1);
    volt.resize(n+1, false);

    for(int i = 0; i < m; i++) {
        int x,y;
        cin >> x >> y;

        g[x].push_back(y);
        g[y].push_back(x);
    }

    for(int i = 1; i <= n; i++) {
        if(g[i].size() >= k && !volt[i]) {
            curr.clear();
            volt[i] = true;
            if(curr.size() > mo.size() && dfs(i)) {
                mo.clear();
                for(int j : curr) mo.push_back(j);
            }
        }
    }
    sort(mo.begin(), mo.end());
    cout << mo.size() << endl;
    for(int i : mo) cout << i << ' ';

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/50
1Hibás válasz0/02ms1748 KiB
2Hibás válasz0/085ms9096 KiB
3Hibás válasz0/21ms2992 KiB
4Hibás válasz0/21ms2996 KiB
5Hibás válasz0/21ms2996 KiB
6Hibás válasz0/21ms3012 KiB
7Hibás válasz0/21ms3020 KiB
8Hibás válasz0/21ms3028 KiB
9Hibás válasz0/21ms3028 KiB
10Hibás válasz0/26ms3352 KiB
11Hibás válasz0/22ms3180 KiB
12Hibás válasz0/24ms3420 KiB
13Hibás válasz0/32ms3272 KiB
14Hibás válasz0/34ms3888 KiB
15Hibás válasz0/37ms4672 KiB
16Hibás válasz0/3100ms9020 KiB
17Hibás válasz0/36ms5196 KiB
18Hibás válasz0/39ms7472 KiB
19Hibás válasz0/3103ms15936 KiB
20Hibás válasz0/3168ms19696 KiB
21Hibás válasz0/3104ms19532 KiB
22Hibás válasz0/31ms9116 KiB