Pagini recente » Cod sursa (job #1716752) | Cod sursa (job #1805014) | Cod sursa (job #1570986) | Cod sursa (job #2058332) | Cod sursa (job #1508518)
#include <iostream>
#include <vector>
#include <fstream>
#include <bitset>
#include <queue>
using namespace std;
#define MAX1 30005
ifstream in("sate.in");
ofstream out("sate.out");
#define f(a) for(int i=1;i<=a;i++)
int n,y,sol;
bitset <MAX1> viz;
vector <pair< int, int> > v[MAX1];
long long int d[MAX1];
inline void dfs(int x,int d)
{
if(x==y)
{
sol=d;
return;
}
viz[x]=1;
for(vector<pair<int, int > > ::iterator it=v[x].begin(); it!=v[x].end(); it++)
if(viz[it->first]==0)dfs(it->first,d+it->second);
return;
}
int main()
{
int m,x,a,b,dis;
in>>n>>m>>x>>y;
f(m)
{
in>>a>>b>>dis;
v[a].push_back({b,dis});
v[b].push_back({a,-dis});
}
dfs(x,0);
out<<sol;
return 0;
}