Pagini recente » Cod sursa (job #1167800) | Cod sursa (job #894919) | Cod sursa (job #2240669) | Cod sursa (job #795829) | Cod sursa (job #554856)
Cod sursa(job #554856)
#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;
}