Pagini recente » Cod sursa (job #230547) | Cod sursa (job #1661717) | Cod sursa (job #674563) | Cod sursa (job #2126580) | Cod sursa (job #1926336)
//Larisa
#include <fstream>
#define NMAX 1001
using namespace std;
ifstream fin ("sortaret.in");
ofstream fout ("sortaret.out");
int G [NMAX][NMAX];
struct varf {
int g, s;
}; varf d[NMAX];
int n, m, i, nr, sel[NMAX], sbm, nrs, c[NMAX], j;
void citire();
void afisare();
int main()
{
citire();
while (nr<n)
{
nrs=0;sbm++;
for (i=1; i<=n; i++)
{
if ((d[i].g==0)&&(sel[i]==0))
{
d[i].s=sbm;
sel[i]++;
c[++nrs]=i;
}
}
for (i=1; i<=nrs; i++)
{
for (j=1; j<=G[c[i]][0]; j++)
{
d[G[c[i]][j]].g--;
}
}
nr+=nrs;
}
afisare();
return 0;
}
void citire()
{
int i, k, l;
fin>>n>>m;
for (i=1; i<=m; i++)
{
fin>>k>>l;
G[k][0]++;
G[k][G[k][0]]=l;
d[l].g++;
}
}
void afisare()
{
int i;
for (j=1; j<=sbm; j++)
{
for (i=1; i<=n; i++)
{
if (d[i].s==j)fout << i <<" ";
}
//fout<<'\n';
}
}