Pagini recente » Cod sursa (job #2934718) | Cod sursa (job #1118630) | Cod sursa (job #2920168) | Cod sursa (job #676052) | Cod sursa (job #1237666)
#include<fstream>
#include<list>
#include<queue>
#include<vector>
#include<algorithm>
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");
vector<pair<int,int> >l[30003];
vector<pair<int,int> >::iterator it;
queue<int> q;
int n,m,X,Y,i,a,b,c;
int aux,aux2,d[30005];
int main()
{
fin>>n>>m>>X>>Y; aux=max(X,Y); aux2=min(X,Y); X=aux2; Y=aux;
for(i=1;i<=m;++i)
{
fin>>a>>b>>c;
l[a].push_back(make_pair(b,c));
l[b].push_back(make_pair(a,-c));
}
q.push(X);
while(!q.empty())
{
aux=q.front();
q.pop();
for(it=l[aux].begin(); it!=l[aux].end();++it)
{
if(abs(d[aux]+it->second)>abs(d[it->first]))
{
d[it->first]=d[aux]+it->second;
q.push(it->first);
}
}
}
fout<<d[Y];
return 0;
}