Pagini recente » Cod sursa (job #2289169) | Cod sursa (job #332601) | Cod sursa (job #1869772) | Cod sursa (job #1054537) | Cod sursa (job #1831598)
#include <vector>
#include <fstream>
using namespace std;
int N, M, Qi;
vector <vector <int> > A;
vector <int> E, Q;
int main(){
int i, j, k;
ifstream fin ("sortaret.in");
fin >> N >> M;
A.resize(N, vector<int>(N));
E.resize(N); Q.resize(N);
for (k=0; k<M; k++){
fin >> i >> j;
i--; j--;
A[i][j]++;
E[j]++;
}
fin.close();
while (Qi!=N){
k=0;
while (k<N && E[k]!=0)
k++;
if (k!=N){
for (i=0; i<N; i++)
if (A[i][k]!=0)
A[i][k]=0;
else if (A[k][i]!=0){
E[i]-=A[k][i];
A[k][i]=0;
}
Q[Qi++]=k;
E[k]=-1;
}
}
ofstream fout ("sortaret.out");
for (i=0; i<N; i++)
fout << Q[i]+1 << ' ';
fout.close();
return 0;
}