Pagini recente » Cod sursa (job #2411657) | Borderou de evaluare (job #1567247) | Cod sursa (job #922610) | Cod sursa (job #1988984) | Cod sursa (job #410243)
Cod sursa(job #410243)
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int n,m,v[101][101],w[101];
void elibereaza(int i);
void citire()
{
f>>n>>m;
for(int i=1;i<=m;i++)
{
int a,b;
f>>a>>b;
v[a][b]=1;
}
}
int grad(int x)
{
int gr=0;
for(int i=1;i<=n;i++)
gr+=v[i][x];
return gr;
}
int afisate=0;
void afisare()
{
while(afisate<n)
{
for(int i=1;i<=n;i++)
{
if(w[i]==0)
{
g<<i<<" ";
afisate++;
elibereaza(i);
w[i]--;
}
else w[i]--;
}
}
}
void elibereaza(int x)
{
for(int i=1;i<=n;i++)
if(v[x][i]>0)
w[i]--;
}
void fa_grad()
{
for(int i=1;i<=n;i++)
w[i]=grad(i);
}
int main()
{
citire();
fa_grad();
afisare();
}