Pagini recente » Cod sursa (job #3293434) | Cod sursa (job #2959863) | Cod sursa (job #2542091) | Cod sursa (job #1986217) | Cod sursa (job #2465658)
#include<iostream>
#include<stdio.h>
#include<fstream>
#include<queue>
#include<vector>
#include <list>
using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");
vector <pair <int,int> >a[100025];
queue <int > c;
int distanta,p,viz[100025],N,M,X,Y,D;
int i,j,k;
int parcurg(int i)
{
viz[i]=1;
int j,v,d;
c.push(i);
while(c.size())
{
p=c.front();c.pop();
for(j=0;j<a[p].size();j++)
{
v=a[p][j].first;
d=a[p][j].second;
if(viz[v]==0)
{
viz[v]=1;
c.push(v);
if(p>v)
distanta=distanta-d;
else
distanta=distanta+d;
if(v==Y)
break;
}
}
}
}
int main()
{
f>>N>>M>>X>>Y;
for(k=1;k<=M;k++)
{
f>>i>>j>>D;
a[i].push_back({j,D});
a[j].push_back({i,D});
}
parcurg(X);
cout<<distanta;
return 0;
}