Pagini recente » Cod sursa (job #2558431) | Cod sursa (job #2125616) | Statistici Varzaru Valentina (valentina.varzaru) | Cod sursa (job #3167245) | Cod sursa (job #1116915)
#include <fstream>
#include<vector>
using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");
int n,m,x,y;
struct muchii{int s,d,c;}a[100025];
vector<int>v[30001];
int viz[30001],t[30001],c[30001];
int main(){
int p,u,i,nod,j;
f>>n>>m>>x>>y;
for(i=1;i<=m;i++){
f>>a[i].s>>a[i].d>>a[i].c;
v[a[i].s].push_back(a[i].d);
v[a[i].d].push_back(a[i].s);
}
p=u=1;
c[p]=x;
viz[x]=1;
t[x]=0;
while(p<=u){
nod=c[p];
for( i=0; i<v[nod].size() && p<=u; i++)
if(viz[v[nod][i]]==0){
u++;
c[u]=v[nod][i];
t[v[nod][i]]=nod;
viz[v[nod][i]]=1;
if(viz[y]==1)
p=u+1;
}
p++;
}
p=0;
for(i=y;i>0;i=t[i]){
u=t[i];
for(j=1;j<=m;j++){
if(a[j].s==u && a[j].d==i){
p=p+a[j].c;
j=m+1;
}
else
if(a[j].s==i && a[j].d==u){
p=p-a[j].c;
j=m+1;
}
}
}
g<<p<<"\n";
return 0;
}