180762025-09-27 18:04:11algoproTestnevelés óracpp17Hibás válasz 3/50275ms23852 KiB
// UUID: 04ef1a0c-7812-47df-ae49-2c0ded9bf17b
#include <bits/stdc++.h>
using namespace std;

int n;
vector<int> allapot1; // 0, 1, 2
vector<int> allapot2; // 0, 1, 2
vector<vector<int>> graph;
vector<int> a;
vector<int> b;
int anws = 1;

void DFS(int curr, bool s, vector<int>& allapot){
    
    if(allapot[curr] == 1)
        anws = 0;
    if(allapot[curr] == 2 || anws == 0)
        return;

    allapot[curr] = 1;
    for(int i = (s ? 0 : graph[curr].size()-1); (s ? i < graph[curr].size() : i >= 0); (s ? i++ : i--))
        DFS(graph[curr][i], s, allapot);
    

    allapot[curr] = 2;
    if(s == true)
        a.push_back(curr);
    else
        b.push_back(curr);

 
}

int main() {
    cin >> n;
    int k;
    cin >> k;
    allapot1.resize(n, 0);
    allapot2.resize(n, 0);
    graph.resize(n);
    
    for(int i = 0; i< k; i++){

        int h, j;
        cin >> h;
        h--;
        cin >> j;
        graph[h].push_back(j-1);
    }

    for(int i = 0; i< n; i++){
        if(allapot1[i] == 0){
            DFS(i, true, allapot1);
            DFS(i, false, allapot2);
        }
    }

    

    if(anws != 0)
        for(int i = 0; i< n; i++)
            if(a[i] != b[i])
                anws = 2;
    
        
    cout << anws << "\n";
    if(anws == 1)
        for(int i = 0; i< n; i++)
            cout << a[i] << " ";

    if(anws == 2){
        for(int i = 0; i< n; i++)
            cout << a[i] << " ";
        for(int i = 0; i< n; i++)
            cout << b[i] << " ";
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base3/50
1Hibás válasz0/01ms316 KiB
2Hibás válasz0/01ms316 KiB
3Hibás válasz0/0214ms8028 KiB
4Hibás válasz0/21ms316 KiB
5Hibás válasz0/31ms316 KiB
6Hibás válasz0/31ms316 KiB
7Hibás válasz0/31ms316 KiB
8Elfogadva1/11ms316 KiB
9Hibás válasz0/31ms316 KiB
10Hibás válasz0/33ms316 KiB
11Hibás válasz0/33ms456 KiB
12Elfogadva1/13ms432 KiB
13Hibás válasz0/23ms452 KiB
14Hibás válasz0/32ms316 KiB
15Hibás válasz0/1172ms4912 KiB
16Hibás válasz0/3156ms10332 KiB
17Hibás válasz0/537ms9556 KiB
18Hibás válasz0/1233ms14756 KiB
19Részben helyes1/2168ms4996 KiB
20Hibás válasz0/3268ms18728 KiB
21Hibás válasz0/4275ms23852 KiB
22Hibás válasz0/4216ms20680 KiB