10692 | 2024. 04. 09 15:49:22 | Vargus | Testnevelés óra | cpp17 | Hibás válasz 25/50 | 263ms | 38308 KiB |
#include <iostream>
#include <queue>
#include <algorithm>
#define ll long long
using namespace std;
struct adat
{
bool lat = false;
ll csop = 1, befok = 0, csp = 0;
vector <ll> sz;
};
vector <adat> x;
deque <ll> v, poz;
void szelesseg(ll csp)
{
v.push_front(csp);
if (!x[csp].lat)
poz.push_front(csp);
while (!v.empty())
{
ll akt = v.front();
v.pop_front();
x[akt].lat = true;
for (auto& e : x[akt].sz)
{
x[e].befok--;
if (!x[e].befok)
{
v.push_front(e);
x[e].csop = x[akt].csop + 1;
poz.push_back(e);
}
}
}
}
bool sorts(const adat& a, const adat& b)
{
return a.csop < b.csop;
}
int main()
{
ll n, k;
cin >> n >> k;
x.resize(n + 1);
for (ll i = 1; i <= k; ++i)
{
ll cs1, cs2;
cin >> cs1 >> cs2;
x[cs1].sz.push_back(cs2);
x[cs2].befok++;
}
for (ll i = 1; i <= n; ++i)
{
x[i].csp = i;
if (!x[i].befok)
{
szelesseg(i);
}
}
sort(x.begin(), x.end(), sorts);
if (poz.size() != n)
{
cout << "0";
return 0;
}
else
{
for (ll i = 2; i <= n; ++i)
{
if (x[i].csop == x[i - 1].csop)
{
cout << "2\n";
for (ll j = 1; j <= n; ++j)
cout << x[j].csp << " ";
cout << endl;
swap(x[i].csp, x[i - 1].csp);
for (ll j = 1; j <= n; ++j)
cout << x[j].csp << " ";
return 0;
}
}
cout << "1\n";
for (auto& e : poz)
cout << e << " ";
}
return 0;
}
/*
5 9
3 1
3 5
3 4
4 2
3 2
1 4
1 2
1 5
5 4
5 3
2 1
3 2
1 5
4 4
1 2
2 3
3 4
4 2
6 4
3 2
2 1
1 5
4 6
5 4
1 2
1 3
2 5
3 4
*/
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 25/50 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1832 KiB | |||
2 | Elfogadva | 0/0 | 3ms | 1932 KiB | |||
3 | Hibás válasz | 0/0 | 263ms | 21048 KiB | |||
4 | Elfogadva | 2/2 | 4ms | 2336 KiB | |||
5 | Elfogadva | 3/3 | 3ms | 2560 KiB | |||
6 | Elfogadva | 3/3 | 3ms | 2764 KiB | |||
7 | Elfogadva | 3/3 | 3ms | 2980 KiB | |||
8 | Elfogadva | 1/1 | 3ms | 3192 KiB | |||
9 | Hibás válasz | 0/3 | 3ms | 3304 KiB | |||
10 | Hibás válasz | 0/3 | 4ms | 3604 KiB | |||
11 | Hibás válasz | 0/3 | 4ms | 3772 KiB | |||
12 | Hibás válasz | 0/1 | 4ms | 3776 KiB | |||
13 | Elfogadva | 2/2 | 4ms | 3792 KiB | |||
14 | Hibás válasz | 0/3 | 4ms | 4028 KiB | |||
15 | Elfogadva | 1/1 | 180ms | 16420 KiB | |||
16 | Hibás válasz | 0/3 | 172ms | 27204 KiB | |||
17 | Részben helyes | 1/5 | 86ms | 29432 KiB | |||
18 | Hibás válasz | 0/1 | 254ms | 38308 KiB | |||
19 | Elfogadva | 2/2 | 168ms | 17384 KiB | |||
20 | Elfogadva | 3/3 | 259ms | 32552 KiB | |||
21 | Elfogadva | 4/4 | 221ms | 32608 KiB | |||
22 | Hibás válasz | 0/4 | 233ms | 32772 KiB |