Pagini recente » Cod sursa (job #1861666) | Cod sursa (job #2447046) | Cod sursa (job #3140156) | Cod sursa (job #947527) | Cod sursa (job #3201636)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");
int n,m,x,y,a,b,c;
int t[3][200048],start[30001],viz[400001];
int bfs(int start1)
{
int st,dr;
int c[1000001];
st=dr=1;
c[st]=start1;
int val = 1;
while(st<=dr)
{
int k=c[st];
int man=start[k];
while(man)
{
if(viz[t[0][man]]==0)
{
dr++;
c[dr]=t[0][k];
if(c[dr]>c[st])
val+=t[2][man];
else
val-=t[2][man];
}
}
if(c[dr]==y)
return val;
st++;
}
return 0;
}
int main()
{
f>>n>>m>>x>>y;
int k=0;
for(int i=1;i<=m;i++)
{
f>>a>>b>>c;
k++;
t[0][k]=b;
t[1][k]=start[a];
t[2][k]=c;
start[a]=k;
k++;
t[0][k]=a;
t[1][k]=start[b];
t[2][k]=c;
start[b]=k;
}
cout<<x;
cout<<y;
g<<bfs(x);
return 0;
}