Cod sursa(job #1339045)

Utilizator sulzandreiandrei sulzandrei Data 10 februarie 2015 17:11:12
Problema Sortare topologica Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.93 kb
#include <fstream>
#include <algorithm>
using namespace std;
#include <list>
#include <vector>
ifstream in("sortaret.in");
ofstream out("sortaret.out");
vector<int> v[10];
    struct fo{
    int ind,t;} f[10];
      bool c[10];
int timp;
void ca(int u)
{
    c[u] = true;
    unsigned int j;
    for(j=0;j<v[u].size();j++)
        if(!c[v[u][j]])
            ca(v[u][j]);
    f[u].t = timp = timp+1;
}

int main()
{
    int n,m,i,j,x,y;
    in>>n>>m;
    for(i=0;i<m;i++)
    {
        in>>x>>y;
        v[x-1].push_back(y-1);
    }
    for(i=0;i<n;i++)
    {
        f[i].t = 0;
        f[i].ind = i;
    }
    timp = 0;
    for(i=0;i<n;i++)
        if (!c[i])
           {
               ca(i);
               c[i] = true;
           }
    for(i=0;i<n;i++)
        for(j=i+1;j<n;j++)
            if (f[i].t<f[j].t)
               swap(f[i],f[j]);
    for(i=0;i<n;i++)
        out<<f[i].ind+1<<" ";
}