Pagini recente » Cod sursa (job #184406) | Cod sursa (job #45936) | Cod sursa (job #2894303) | Cod sursa (job #2301759) | Cod sursa (job #3187147)
#include <fstream>
#include <vector>
#include <bitset>
#define DIM 30001
using namespace std;
ifstream fin ("sate.in");
ofstream fout("sate.out");
vector <pair<int, int>>L[DIM];
int d[DIM],c[DIM];
bitset<DIM>v;
int n,m,i,j,p,u,x,y,a,b,dis;
int main()
{
fin>>n>>m>>x>>y;
if(x>y)
swap(x,y);
for(i=1;i<=m;i++)
{
fin>>a>>b>>dis;
L[a].push_back(make_pair(b,dis));
L[b].push_back(make_pair(a,-1*dis));
}
p=u=1;
c[1]=x;
v[x]=1;
d[x]=0;
while(p<=u)
{
int nod=c[p];
for(i=0;i<L[nod].size();i++)
{
int vecin=L[nod][i].first, dist=L[nod][i].second;
if(v[vecin]==0)
{
u++;
c[u]=vecin;
v[vecin]=1;
d[vecin]=d[nod]+dist;
if(vecin==y)
{
fout<<d[vecin];
return 0;
}
}
}
p++;
}
return 0;
}