180292025-09-25 17:04:07algoproTestnevelés óracpp17Hibás válasz 9/50145ms21668 KiB
// UUID: efbf5f1b-3b54-4070-bae4-884b1be32c09
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define F first
#define S second
#define pii  pair<int, int>
#define pb push_back
#define srt(x) x.begin(),x.end()
const int INF = 1e9;

vector<vector<int>>g;
vector<int>vis;
vector<int>top;

void dfs(int v)
{
    vis[v] = 1;
    for(int u : g[v])
    {
        if(vis[u] == 1)
        {
            cout << 0;
            exit(0);
        }
        if(vis[u] == 0) dfs(u);
    }
    vis[v] = 2;
    top.pb(v);
}

signed main() {
    ios::sync_with_stdio(false);cin.tie(nullptr);
	int n, k; cin >> n >> k;
    g.resize(n);
    vis.resize(n, 0);
    while(k--)
    {
        int a, b; cin >> a >> b;
        g[--a].pb(--b);
    }
    for(int i = 0; i < n; i++) if(vis[i] == 0) dfs(i);
    reverse(srt(top));
    bool x = 0;
    for(int i = 0; i < n-1; i++)
    {
        x = 0;
        for(int u : g[top[i]])
        {
            if(u == top[i+1]) x = 1;
        }
        if(!x)
        {
            cout << 2 << "\n";
            break;
        }
        if(i == n-2) cout << 1 << "\n";
    }
    for(int u : top) cout << u+1 << " ";
    cout << "\n";
    if(!x)
    {
        for(int i = 0; i < n; i++)
        {
            if(x) cout << top[i] << " ";
            else
            {
                if(i < n-1)
                {
                    x = 0;
                    for(int u : g[top[i]])
                    {
                        if(u == top[i+1]) x = 1;
                    }
                    if(!x)
                    {
                        swap(top[i], top[i+1]);
                        break;
                    }
                }
                cout << top[i] << " ";
            }
        }
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base9/50
1Elfogadva0/01ms500 KiB
2Hibás válasz0/01ms508 KiB
3Hibás válasz0/090ms8104 KiB
4Hibás válasz0/21ms316 KiB
5Részben helyes1/31ms316 KiB
6Hibás válasz0/31ms316 KiB
7Hibás válasz0/31ms316 KiB
8Elfogadva1/11ms316 KiB
9Hibás válasz0/31ms508 KiB
10Hibás válasz0/32ms316 KiB
11Hibás válasz0/32ms316 KiB
12Elfogadva1/12ms316 KiB
13Elfogadva2/22ms316 KiB
14Hibás válasz0/31ms316 KiB
15Elfogadva1/179ms5876 KiB
16Hibás válasz0/374ms10324 KiB
17Részben helyes1/528ms9492 KiB
18Hibás válasz0/197ms13648 KiB
19Elfogadva2/276ms6060 KiB
20Hibás válasz0/3145ms17572 KiB
21Hibás válasz0/4125ms21668 KiB
22Hibás válasz0/4122ms19100 KiB