Cod sursa(job #2668469)

Utilizator mihaimbMihai Badea mihaimb Data 4 noiembrie 2020 22:19:17
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.09 kb
#include <fstream>
#include <vector>
#include <bitset>
#include <stack>


using namespace std;

int main()
{

    ifstream fin("sortaret.in");
    ofstream fout("sortaret.out");

    int n,m,x,y;

    fin>>n>>m;

    vector<int> L[100001];

    for(int i=0; i<m; i++)
    {
        fin>>x>>y;

        L[x].push_back(y);
        L[y].push_back(x);
    }


    bitset<100001> B;


    for(int i=1; i<=n; i++)
    {
        if(!B[i])
        {

            stack<int> S;

            S.push(i);

            while(!S.empty())
            {
                int t = S.top();
                S.pop();

                if(!B[t])
                {

                    B[t]=1;

                    fout<<t<<' ';
                    for(int j=0; j<L[t].size(); j++)
                    {
                        if(!B[L[t][j]])
                        {
                            S.push(L[t][j]);
                        }

                    }
                }
            }

        }
    }


    fin.close();
    fout.close();

    return 0;
}