Pagini recente » Cod sursa (job #2432519) | Cod sursa (job #2040236) | Cod sursa (job #235941) | Cod sursa (job #289354) | Cod sursa (job #2508518)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
struct node {
int value;
node *next;
};
node *listV[50001];
void add(node* &head, int val) {
node* el = new node;
el -> value = val;
el -> next = NULL;
if(head == NULL)
head = el;
else {
node *p = head;
while(p -> next != NULL)
p = p -> next;
p -> next = el;
}
}
/*void ad(node* &head, int val) {
node *el = new node;
el -> value = val;
el -> next = head;
head = el;
}
void afisare(node* head) {
while(head != NULL) {
cout << head -> value << " ";
head = head -> next;
}
}*/
int k, stiva[50001];
void visite(node* &head, int i, int visited[50001]) {
visited[i] = 1;
while(head != NULL) {
int nr = head -> value;
if(visited[nr] == 0)
visite(listV[nr], nr, visited);
head = head -> next;
}
stiva[++k] = i;
}
int main()
{
int N, M, visited[50001];
f >> N >> M;
for(int i = 1; i <= N; i++) {
visited[i] = 0;
listV[i] = NULL;
}
while(M--) {
int x, y;
f >> x >> y;
add(listV[x], y);
}
for(int i = 1; i <= N; i++) {
if(visited[i] == 0)
visite(listV[i],i, visited);
}
for(int i = N; i >= 1; i--)
g << stiva[i] << " ";
return 0;
}