96842024-02-26 15:12:02norbertvidaParti (75 pont)cpp17Időlimit túllépés 72/75347ms16656 KiB
#include <bits/stdc++.h>

using namespace std;

int main() {
    iostream::sync_with_stdio(0);
    cin.tie(0);
    int N;
    cin >> N;
    vector<vector<int>> edges(N, vector<int>());
    vector<int> invitee_counter(N, 0);
    for(int i = 0, a, b; i < N; ++i) {
        cin >> a >> b;
        --a;
        --b;
        edges[i].push_back(a);
        edges[i].push_back(b);
        ++invitee_counter[a];
        ++invitee_counter[b];
    }
    vector<int> nodes(N);
    for(int i = 0; i < N; i++) nodes[i] = i;
    while(true) {
        sort(nodes.begin(), nodes.end(), [&](int a, int b) {
            if(invitee_counter[a] == invitee_counter[b]) return a > b;
            return invitee_counter[a] > invitee_counter[b];
        });
        if(invitee_counter[*nodes.rbegin()] >= 2) break;
        for(auto it = nodes.rbegin(); it != nodes.rend(); ++it) {
            if(invitee_counter[*it] >= 2) break;
            for(int n : edges[*it]) --invitee_counter[n];
            nodes.pop_back();
        }
    }
    cout << nodes.size() << "\n";
    for(auto it = nodes.rbegin(); it != nodes.rend(); ++it) cout << (*it) + 1 << " ";
    cout << "\n";
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base72/75
1Elfogadva0/03ms1832 KiB
2Elfogadva0/039ms8268 KiB
3Elfogadva3/33ms2372 KiB
4Elfogadva3/33ms2332 KiB
5Időlimit túllépés0/3347ms2308 KiB
6Elfogadva3/33ms2476 KiB
7Elfogadva3/33ms2556 KiB
8Elfogadva4/43ms2836 KiB
9Elfogadva4/43ms3076 KiB
10Elfogadva4/44ms3228 KiB
11Elfogadva4/43ms3284 KiB
12Elfogadva4/44ms3572 KiB
13Elfogadva4/44ms3860 KiB
14Elfogadva4/44ms4148 KiB
15Elfogadva4/439ms9868 KiB
16Elfogadva4/446ms11292 KiB
17Elfogadva4/452ms12596 KiB
18Elfogadva4/461ms13728 KiB
19Elfogadva4/468ms15356 KiB
20Elfogadva4/479ms16456 KiB
21Elfogadva4/479ms16656 KiB
22Elfogadva4/43ms4496 KiB