241222026-02-04 16:00:27KristófTestnevelés óracpp17Hibás válasz 28/50118ms13224 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.first=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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base28/50
1Elfogadva0/01ms504 KiB
2Elfogadva0/01ms316 KiB
3Elfogadva0/089ms7080 KiB
4Hibás válasz0/21ms316 KiB
5Elfogadva3/31ms316 KiB
6Hibás válasz0/31ms316 KiB
7Elfogadva3/31ms384 KiB
8Elfogadva1/12ms316 KiB
9Elfogadva3/32ms332 KiB
10Hibás válasz0/32ms560 KiB
11Hibás válasz0/32ms468 KiB
12Elfogadva1/12ms316 KiB
13Elfogadva2/22ms544 KiB
14Elfogadva3/31ms508 KiB
15Elfogadva1/167ms4292 KiB
16Elfogadva3/383ms9644 KiB
17Elfogadva5/545ms9924 KiB
18Elfogadva1/1112ms13224 KiB
19Elfogadva2/268ms4540 KiB
20Hibás válasz0/3108ms11824 KiB
21Hibás válasz0/4118ms11688 KiB
22Hibás válasz0/4105ms11688 KiB