Cod sursa(job #907278)

Utilizator crudu_denisDenis Crudu crudu_denis Data 7 martie 2013 19:36:41
Problema Sate Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include<fstream>
#include<vector>

#define maxn 30002
using namespace std;
int n,m,x,y;
int nrv[maxn], v[maxn],d[maxn];

vector <int> a[maxn];
vector <int> b[maxn];
void citire()
{

   ifstream fin("sate.in");
   fin>>n>>m>>x>>y;
   int c1,c2,c3;
   for(int i=1;i<=m;i++)
   {
      fin>>c1>>c2>>c3;
      a[c1].push_back(c2);
      a[c2].push_back(c1);
      b[c1].push_back(c3);
      b[c2].push_back(-c3);

   }
   for(int i=1;i<=n;i++)
   {
     nrv[i]=a[i].size();
   }
 }
void dfs(int nod)
{
    for(int i=0;i<nrv[nod];i++)
        if(!v[a[nod][i]])
        {
            v[a[nod][i]]=1;
            d[a[nod][i]]=d[nod]+b[nod][i];
            dfs(a[nod][i]);
        }
}

void afisare()
{
   ofstream fout("sate.out");
  fout<<d[y];

}
int main()
{
   citire();
   v[x]=0;
   dfs(x);
   afisare();
   return 0;
}