176022025-08-09 13:49:05BucsMateHálózati biztonság (50)cpp17Elfogadva 50/50156ms9080 KiB
#include <iostream>
#include <vector>
#include <queue>

using namespace std;

int main()
{
    int N, M, K;
    cin >> N >> M >> K;
    vector<vector<int>> adj(N+1);
    vector<int> degree(N+1);
    vector<bool> inSubset(N+1, true);

    for(int i = 0; i < M; ++i){
        int a, b;
        cin >> a >> b;
        adj[a].push_back(b);
        adj[b].push_back(a);
        degree[a]++;
        degree[b]++;
    }

    queue<int> q;
    for(int i = 1; i <= N; ++i){
        if(degree[i] < K){
            inSubset[i] = false;
            q.push(i);
        }
    }
    int nrRemaining = N;
    while(!q.empty()){
        int currNode = q.front();
        nrRemaining--;
        q.pop();
        for(int newNode : adj[currNode]){
            if(inSubset[newNode]){
                degree[newNode]--;
                if(degree[newNode] < K){
                    inSubset[newNode] = false;
                    q.push(newNode);
                }
            }
        }
    }
    cout << nrRemaining << endl;
    for(int i = 1; i <= N; ++i){
        if(inSubset[i]){
            cout << i << " ";
        }
    }
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms500 KiB
2Elfogadva0/097ms4920 KiB
3Elfogadva2/21ms508 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva2/21ms316 KiB
6Elfogadva2/21ms564 KiB
7Elfogadva2/21ms316 KiB
8Elfogadva2/21ms556 KiB
9Elfogadva2/21ms564 KiB
10Elfogadva2/26ms660 KiB
11Elfogadva2/22ms464 KiB
12Elfogadva2/24ms564 KiB
13Elfogadva3/31ms316 KiB
14Elfogadva3/34ms840 KiB
15Elfogadva3/37ms1332 KiB
16Elfogadva3/381ms4148 KiB
17Elfogadva3/37ms872 KiB
18Elfogadva3/310ms2356 KiB
19Elfogadva3/3109ms7476 KiB
20Elfogadva3/3156ms9080 KiB
21Elfogadva3/3119ms7708 KiB
22Elfogadva3/31ms316 KiB