168032025-05-13 17:07:50algoproKét csoportcpp17Time limit exceeded 73/100372ms6452 KiB
// UUID: 57100d2b-0c77-42b3-a6d9-28532cacabe8
#include <bits/stdc++.h>
using namespace std;

int main() {
    int n;
    cin >> n;
    vector<array<int, 3>> a(n + 2, {n + 1, n + 1, n + 1});
    vector<int> t(n + 2, 0);
    t[n + 1] = -1;
    for(int i = 1; i <= n; i++){
        for(int j = 0; j < 4; j++){
            int b;
            cin >> b;
            if(b != 0) a[i][j] = b;
            else break;
        }
    }
    for(int i = 1; i <= n; i++){
        int bad = i;
        t[i] = 0;
        while(true){
            int s = 0;
            for(int j = 0; j < 3; j++){
                s += (t[a[bad][j]] == t[bad]);
            }
            if(s >= 2){
                t[bad] = 1 - t[bad];
                for(int j = 0; j < 3; j++){
                    if(t[a[bad][j]] == t[bad]){
                        bad = a[bad][j];
                        break;
                    }
                }
            }
            else break;
        }
    }
    int ans = 0;
    for(int i = 1; i <= n; i++){
        if(t[i] == 0) ans++;  
    }
    cout << ans << "\n";
    for(int i = 1; i <= n; i++){
        if(t[i] == 0) cout << i << " ";  
    }
}
SubtaskSumTestVerdictTimeMemory
base73/100
1Accepted0/01ms316 KiB
2Accepted0/097ms2348 KiB
3Accepted3/31ms316 KiB
4Accepted3/31ms316 KiB
5Accepted3/31ms316 KiB
6Accepted3/31ms316 KiB
7Accepted3/31ms316 KiB
8Accepted2/21ms316 KiB
9Accepted3/32ms316 KiB
10Accepted3/32ms316 KiB
11Accepted3/32ms316 KiB
12Accepted3/39ms568 KiB
13Accepted3/310ms556 KiB
14Accepted3/310ms560 KiB
15Accepted6/697ms2356 KiB
16Accepted7/7108ms2228 KiB
17Accepted7/7119ms2100 KiB
18Accepted6/6201ms4308 KiB
19Accepted6/6224ms4056 KiB
20Accepted6/6246ms4148 KiB
21Time limit exceeded0/6303ms6452 KiB
22Time limit exceeded0/7342ms6196 KiB
23Time limit exceeded0/7372ms5940 KiB
24Time limit exceeded0/7372ms5940 KiB