Cod sursa(job #554856)

Utilizator iulian13Iulian Ionascu iulian13 Data 15 martie 2011 09:58:42
Problema Sate Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<stdio.h>
#include<vector>
#include<queue>

#define input "sate.in"
#define output "sate.out"
#define NMAX 30001

using namespace std;

bool functie1[NMAX];
int n,m,x,y;
vector<vector<pair<int, int> > >G;

void deschidere()
{
	freopen(input,"r",stdin);
	freopen(output,"w",stdout);
}

void functie2(int x, int d)
{
     if(x==y)
     {
         printf("%d",d);
         return;
     }
     
     for( int i=0;i<G[x].size();++i)
          if( !functie1[G[x][i].first] )
          {
              functie1[G[x][i].first]=true;
              functie2( G[x][i].first,d+G[x][i].second);
          }
}


void citire()
{
	int a,b,d;
	scanf("%d%d%d%d",&n,&m,&x,&y);
	G.resize(n+1);
	for(int i=1;i<=m;++i)
	{
		scanf("%d%d%d",&a,&b,&d);
		G[a].push_back(make_pair(b,d));
		G[b].push_back(make_pair(a,-d));
	}
}

int main()
{
	deschidere();
	citire();
	functie2(x,0);
	return 0;
}