Pagini recente » Cod sursa (job #1764685) | Cod sursa (job #614211)
Cod sursa(job #614211)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int N,precedenti[50],adiac[50][50],vizitat[50];
void citeste_fisier();
void parcurgere();
bool verif_term();
int main()
{
citeste_fisier();
parcurgere();
return 0;
}
void parcurgere()
{
FILE *g = fopen("sortaret.out","w");
int i,j,k;
while ( verif_term() == false )
{
for(i=0;i<N;i++)
{
if ( precedenti[i] == 0 && vizitat[i] == 0 )
{
vizitat[i] = 1;
fprintf(g,"%d ",i+1);
for(j=0;j<N;j++)
if ( adiac[i][j] == 1 )
precedenti[j]--;
}
}
}
fclose(g);
}
bool verif_term()
{
for(int i=0;i<N;i++)
if ( vizitat[i] == 0 )
return false;
return true;
}
void citeste_fisier()
{
FILE *f = fopen("sortaret.in","r");
if ( f == 0 )
return;
int M,a,b;
fscanf(f,"%d %d",&N,&M);
for(int i=0;i<M;i++)
{
fscanf(f,"%d %d",&a,&b);
precedenti[b]++;
adiac[a][b] = 1;
}
fclose(f);
}