Cod sursa(job #1076395)

Utilizator varga13VarGaz13 varga13 Data 10 ianuarie 2014 09:28:58
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.41 kb
#include <fstream>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;

ifstream f("sortaret.in");
ofstream g("sortaret.out");

int n,m, K;

vector<int> noduri[10000], sol;
bool bul[10000];
int intrari[10000];

/*void Read()
{
    f>>n>>m;
    for(int i =0;i<m; ++i)
    {int aux, aux2;
        f>>aux;
        f>>aux2;
        noduri[aux].push_back(aux2);
    }
}*/
/*
void Parcurg(int k)
{
   if(!bul[K])
    {
        sol[++K]=k;
        bul[K]=true;
        for(int i=0;i<noduri[k].size();++i)
        {
            Parcurg(noduri[k][i]);
        }
    }

}*/

void Write()
{
    for (int i=0;i<n;i++)
    {
        cout<<sol[i]<<' ';
    }
}

bool cmp(int i, int j)
{
   for(int k=0;k<noduri[i].size();k++)
        if(noduri[i][k]==j) return true;
    return false;

}

int main()
{bool ok;
       // Read();
       f>>n>>m;

    for(int i=0;i<m; i++)
        {int aux, aux2;

        f>>aux;
        f>>aux2;
        noduri[aux].push_back(aux2);
        cout<<i;
        }

        for(int i=1;i<n;i++)
            sol[i]=i;

        do{
            ok=1;
            for(int i=1;i<=n-1;i++)
                if(cmp(sol[i], sol[i+1]))
                {
                swap(sol[i], sol[i+1]);
                ok=0;
                }
        }while(ok!=1);
       Write();

    f.close();
    g.close();
    return 0;
}