Pagini recente » Cod sursa (job #2787951) | Cod sursa (job #1722486) | Cod sursa (job #2318853) | Cod sursa (job #2850435) | Cod sursa (job #1599278)
#include <iostream>
#include <stdio.h>
#include <vector>
#define NMax 30005
using namespace std;
vector<pair<int,int> > Graf[NMax];
int N,M,x,y,z,X,Y,sol[100031];
bool mark[NMax];
void Read()
{
scanf("%d%d%d%d",&N,&M,&X,&Y);
for(int i=1;i<=M;i++)
{
scanf("%d%d%d",&x,&y,&z);
Graf[x].push_back(make_pair(y,z));
Graf[y].push_back(make_pair(x,-z));
}
}
void DFS(int nod)
{
mark[nod]=true;
for(vector<pair<int,int> >::iterator it=Graf[nod].begin();it!=Graf[nod].end();it++)
if(mark[it->first]==false)
{
sol[it->first]=sol[nod]+it->second;
DFS(it->first);
if(it->first==Y)
return;
}
}
int main()
{
freopen("sate.in","r",stdin);
freopen("sate.out","w",stdout);
Read();
DFS(X);
printf("%d ",sol[Y]);
}