Pagini recente » Cod sursa (job #1532973) | Cod sursa (job #2679751) | Cod sursa (job #2406875) | Cod sursa (job #2683214) | Cod sursa (job #1489649)
#include <bits/stdc++.h>
using namespace std;
vector<int> v[50005];
int s[50005];
bool pus[50005];
int main()
{
FILE *f = fopen("sortaret.in", "r");
FILE *g = fopen("sortaret.out", "w");
int n, m, x, y;
fscanf(f, "%d %d", &n, &m);
for(int i = 1; i <= m; i ++) {
fscanf(f, "%d %d", &x, &y);
v[x].push_back(y);
}
for(int i = 1; i <= n; i ++)
s[i] = v[i].size();
int rez[50005];
m = n;
while(m) {
int mn = 50005;
int poz;
for(int i = 1; i <= n; i ++) {
if(s[i] < mn && !pus[i]) {
mn = s[i];
poz = i;
}
}
pus[poz] = true;
for(int i = 1; i <= n; i ++) {
if(!pus[i]) {
for(int j = 0; j < v[i].size(); j ++) {
if(v[i][j] == poz)
s[i] --, j = v[i].size();
}
}
}
rez[m] = poz;
m--;
}
for(int i = 1; i <= n; i ++)
fprintf(g, "%d ", rez[i]);
fprintf(g, "\n");
return 0;
}