4648 2023. 03. 30 14:12:36 Eyusie Testnevelés óra cpp17 Hibás válasz 8/50 1.1s 50900 KiB
#include <bits/stdc++.h>
using namespace std;

list<int> a;
list<int> mx;
vector<vector<int>> magas(200001);
bool kor = false;
vector<bool> kors(200001, 0);
void dsearch(int v)
{
    if(kors[v]) kor = true;
    else
    {
        a.push_back(v);
        if(magas[v].size() == 0)
        {
            if(mx.size() < a.size())
            {
                mx = a;
            }
        }
        else
        {
                kors[v] = true;
        for(int i = 0; i< magas[v].size(); i++)
            {
                if(kor) break;
                dsearch(magas[v][i]);

            }
                kors[v] = false;

        }
        a.erase(prev(a.end()));
    }
}
int main()
{
    int n, k;
    cin >> n >> k;
    int m, v;
    set<int> e;
    set<int> x;
    for(int i = 0; i < n; i++)
    {
        x.insert(i);
        e.insert(i);
    }
    for(int i = 0; i < k; i++)
    {
        cin >> m >> v;
        magas[v-1].push_back(m-1);
        e.insert(v-1);
        e.erase(m-1);
        x.erase(v-1);
        x.erase(m-1);
    }
    for(set<int>::iterator itr = e.begin(); itr != e.end(); ++itr)
    {
    dsearch(*itr);
    }
    if(kor)
        cout << "0";
    else if(mx.size() == n)
    {
    cout << "1\n";
    for(list<int>::reverse_iterator itr = mx.rbegin(); itr != mx.rend(); ++itr)
    {
        cout << *itr+1 << " ";
    }
    }
    else
    {
        cout << "2\n";
        for(set<int>::reverse_iterator itr = x.rbegin(); itr != x.rend(); ++itr)
    {
        cout << *itr+1 << " ";
    }
    for(list<int>::reverse_iterator itr = mx.rbegin(); itr != mx.rend(); ++itr)
    {
        cout << *itr+1 << " ";
    }
     cout << "\n";

    for(list<int>::reverse_iterator itr = mx.rbegin(); itr != mx.rend(); ++itr)
    {
        cout << *itr+1 << " ";
    }
         for(set<int>::iterator itr = x.begin(); itr != x.end(); ++itr)
    {
        cout << *itr+1 << " ";
    }
    }
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 8/50
1 Elfogadva 0/0 7ms 11024 KiB
2 Elfogadva 0/0 7ms 11272 KiB
3 Hibás válasz 0/0 578ms 30124 KiB
4 Hibás válasz 0/2 7ms 11704 KiB
5 Részben helyes 1/3 6ms 11724 KiB
6 Hibás válasz 0/3 6ms 11728 KiB
7 Hibás válasz 0/3 7ms 11856 KiB
8 Elfogadva 1/1 6ms 12068 KiB
9 Hibás válasz 0/3 6ms 12276 KiB
10 Időlimit túllépés 0/3 1.057s 7612 KiB
11 Időlimit túllépés 0/3 1.078s 7480 KiB
12 Elfogadva 1/1 8ms 12704 KiB
13 Időlimit túllépés 0/2 1.1s 7756 KiB
14 Hibás válasz 0/3 8ms 13452 KiB
15 Időlimit túllépés 0/1 1.1s 12868 KiB
16 Időlimit túllépés 0/3 1.062s 20560 KiB
17 Elfogadva 5/5 246ms 50900 KiB
18 Időlimit túllépés 0/1 1.072s 27524 KiB
19 Időlimit túllépés 0/2 1.062s 13540 KiB
20 Időlimit túllépés 0/3 1.074s 39840 KiB
21 Időlimit túllépés 0/4 1.077s 41240 KiB
22 Időlimit túllépés 0/4 1.069s 41664 KiB