158522025-03-05 02:21:27rennParti (75 pont)cpp17Elfogadva 75/7535ms4024 KiB
#include <bits/stdc++.h>
using namespace std;

struct Tag {
    int index;
    int bal, jobb;
    Tag *next = NULL;
};

int main()
{
    cin.tie(0);
    ios::sync_with_stdio(0);
    
    int n;
    cin >> n;
    if(n < 3)
    {
        cout << "0\n";
        return 0;
    }

    int befok[n+1] = {0};

    Tag *a = new Tag();
    Tag *b = a;
    Tag *c, *t;
    
    for(int i = 0; i < n; i++)
    {
        c = new Tag();
        c->index = i+1;
        cin >> c->bal >> c->jobb;
        befok[c->bal]++;
        befok[c->jobb]++;
        
        b->next = c;
        b = c;
    }
    
    bool torles = true;
    while(torles)
    {
        torles = false;
        c = a;
        while(c->next != NULL)
        {
            if(befok[c->next->index] < 2)
            {
                n--;
                t = c->next;
                befok[t->bal]--;
                befok[t->jobb]--;
                c->next = t->next;
                befok[t->index] = -1;
                delete t;
                torles = true;
                continue;
            }

            c = c->next;
        }
    }
    
    b = a;
    a = a->next;
    delete b;

    cout << n << "\n";
    while(a != NULL)
    {
        cout << a->index << " ";
        a = a->next;
    }
    cout << "\n";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base75/75
1Elfogadva0/01ms316 KiB
2Elfogadva0/017ms2100 KiB
3Elfogadva3/31ms316 KiB
4Elfogadva3/31ms316 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva3/31ms316 KiB
7Elfogadva3/31ms316 KiB
8Elfogadva4/41ms500 KiB
9Elfogadva4/41ms316 KiB
10Elfogadva4/42ms316 KiB
11Elfogadva4/41ms316 KiB
12Elfogadva4/42ms500 KiB
13Elfogadva4/42ms316 KiB
14Elfogadva4/42ms564 KiB
15Elfogadva4/417ms2240 KiB
16Elfogadva4/420ms2448 KiB
17Elfogadva4/425ms2868 KiB
18Elfogadva4/428ms3252 KiB
19Elfogadva4/430ms3636 KiB
20Elfogadva4/434ms3924 KiB
21Elfogadva4/435ms4024 KiB
22Elfogadva4/41ms316 KiB