Pagini recente » Borderou de evaluare (job #3327853) | Borderou de evaluare (job #1871280) | Borderou de evaluare (job #3304918) | Borderou de evaluare (job #1618748) | Cod sursa (job #3335232)
#include <bits/stdc++.h>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
const int NMAX = 1000005;
vector <int> G[NMAX];
int n,m;
bool viz[NMAX];
stack <int> st;
void DFS(int x){
viz[x]=true;
for (auto vecin : G[x]){
if (viz[vecin]==false){
DFS(vecin);
}
}
st.push(x);
}
int main(){
f>>n>>m;
for (int i=1;i<=m;i++){
int nod1, nod2;
f>>nod1>>nod2;
G[nod1].push_back(nod2);
}
for (int i=1;i<=n;i++) {
if (viz[i]==false) {
DFS(i);
}
}
while (!st.empty()){
g<<st.top()<<" ";
st.pop();
}
}