Cod sursa(job #1359810)

Utilizator katakonst94Pirvu Constantin Catalin katakonst94 Data 25 februarie 2015 08:12:54
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.52 kb
#include <iostream>
#include <fstream>
#include <list>
#include <vector>
using namespace std;

ifstream f("easygraph.in");
ofstream g("easygraph.out");
char vis[15001];
long long  sm;
long long s1,s2;
vector <int>mat[15001];
int sum[15001];
int v[15001];
int n;
list<int> L;

int c=0;
 void dfs(int nod)
{
//cout<<nod<<"  ";

for(int i=0;i<mat[nod].size();i++){
    if(vis[mat[nod][i]]==0)
{

    vis[mat[nod][i]]=1;
    dfs(mat[nod][i]);

}

}
//c++;
//s2=s1;
L.push_front(nod);
s1=v[nod];
if (s1 < s2 + v[nod])
        s1 = s2 + v[nod];
    if (sm < s1)
        sm = s1;




}
int main()
{

    int t,m,l;
  // f>>t;
    for(int i=1;i<=1;i++)
    {
        f>>n;
        f>>m;
//  for(int i = 1; i <= n; i++){
  //    f>>v[i];

  }
int a1=0;

        for(int j=1;j<=m;j++)
        {
            int k,p;
            f>>k;
            f>>p;
            mat[k].push_back(p);
        }

    for(int i = 1; i <= n; i++)
    {
        if(vis[i]==0){
                 if(!a1)
                 {
                     sm=v[i];
                     a1=1;
                 }
            vis[i]=1;
            s1=0;
            s2=0;
            dfs(i);
        }
    }
      for(int i = 1; i <= n; i++){
                 vis[i]=0;
                 mat[i].clear();

                 }

     // g<<sm<<"  \n";






       list<int>::iterator h;
    for(h=L.begin(); h != L.end(); ++h)
       g << *h << " ";
    cout << "Hello world!" << endl;
    return 0;
}