Pagini recente » Profil carmen59 | Cod sursa (job #1395777) | Cod sursa (job #2087862) | Cod sursa (job #1707243) | Cod sursa (job #952383)
Cod sursa(job #952383)
#include <iostream>
#include <fstream>
#include <stack>
#include <vector>
#include <string>
#include <utility>
#include <bitset>
using namespace std;
class sortareT{
private:
vector<int> graf[50001], asdsa;
bitset<50001> vizitat;
int nrNoduri, nrMuchii, cntr;
fstream in, out;
struct bla{
int in, out;
}timp[50001];
void dfs(int);
public:
void read();
void start();
void print();
public:
sortareT(string, string);
~sortareT();
};
int main()
{
cout << "Hello world!" << endl;
sortareT *test = new sortareT ("sortaret.in", "sortaret.out");
test->read();
test->start();
test->print();
return 0;
}
void sortareT::dfs(int x){
vizitat[x] = 1;
for (int i = 0; i < graf[x].size(); i++){
int y = graf[x][i];
if (!vizitat[y]){
dfs(y);
}
}
asdsa.push_back(x);
}
void sortareT::read(){
in >> nrNoduri >> nrMuchii;
int aux1, aux2;
for (int i = 1; i <= nrMuchii; i++){
in >> aux1 >> aux2;
graf[aux1].push_back(aux2);
}
}
void sortareT::start(){
vizitat.reset();
timp[1].in = ++cntr;
for (int i = 1; i <= nrNoduri; i++){
if (!vizitat[i]){
dfs(i);
}
}
}
void sortareT::print(){
for (vector<int>::iterator it = asdsa.end() - 1; it >= asdsa.begin(); it--){
out << *it << " ";
}
out << endl;
}
sortareT::sortareT(string fin, string fout):
cntr(0){
in.open(fin.c_str(), ios::in);
out.open(fout.c_str(), ios::out);
}
sortareT::~sortareT(){
in.close();
out.close();
}