241232026-02-04 16:08:40KristófTestnevelés óracpp17Accepted 50/50128ms13224 KiB
#include <iostream>
#include <vector>
#include <algorithm>
#include <bits/stdc++.h>
using namespace std;
vector<vector<int>> graph;
int main()
{
    ios_base::sync_with_stdio(NULL);
    cin.tie(0);
    cout.tie(0);
    int n,m;
    cin>>n>>m;
    graph.resize(n+1);
    int x,y;
    vector<int> indeg(n+1,0);
    for(int i=0;i<m;i++)
        {
        cin>>x>>y;
        indeg[y]++;
        graph[x].push_back(y);
        }
    bool s=false;
    pair<int,int> swappable;
    queue<int> q;
    vector<int> topo;
    for(int i=1;i<=n;i++)if(!indeg[i]){q.push(i);topo.push_back(i);}
    if(topo.size()>1)
        {
        s=true;
        swappable.first=0;
        swappable.second=1;
        }
    while(q.size())
        {
        int cnt=0;
        int v=q.front();q.pop();
        for(int x:graph[v])
            {
            indeg[x]--;
            if(indeg[x]==0)
                {
                q.push(x);
                cnt++;
                topo.push_back(x);
                if(!s && cnt>1)
                    {
                    s=true;
                    swappable.first=topo.size()-2;
                    swappable.second=topo.size()-1;
                    }
                }
            }
        }
    if(topo.size()!=n)cout<<0;
    else
        {
        if(s==false)
            {
            cout<<1<<"\n";
            for(int x:topo)cout<<x<<" ";
            }
        else
            {
            cout<<2<<"\n";
            for(int x:topo)cout<<x<<" ";
            cout<<"\n";
            for(int i=0;i<n;i++)
                {
                if(i==swappable.first)
                    {
                    cout<<topo[swappable.second]<<" ";
                    cout<<topo[swappable.first]<<" ";
                    i++;
                    }
                else cout<<topo[i]<<" ";
                }
            }
        }
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms316 KiB
2Accepted0/01ms316 KiB
3Accepted0/097ms7084 KiB
4Accepted2/21ms316 KiB
5Accepted3/31ms500 KiB
6Accepted3/31ms508 KiB
7Accepted3/31ms316 KiB
8Accepted1/11ms508 KiB
9Accepted3/31ms512 KiB
10Accepted3/32ms316 KiB
11Accepted3/32ms316 KiB
12Accepted1/12ms316 KiB
13Accepted2/22ms316 KiB
14Accepted3/32ms544 KiB
15Accepted1/167ms4356 KiB
16Accepted3/381ms9688 KiB
17Accepted5/543ms10116 KiB
18Accepted1/1128ms13224 KiB
19Accepted2/267ms4584 KiB
20Accepted3/3104ms11848 KiB
21Accepted4/4122ms11804 KiB
22Accepted4/4100ms11688 KiB