Pagini recente » Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #222469) | Profil M@2Te4i | Cod sursa (job #2868614)
#include<bits/stdc++.h>
#define int long long
#define INF 2000000000
using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");
int n,m,x2,y2,d[3002],viz[3002];
vector< pair<int,int> >v[30002];
queue< int >q;
void bfs(int x)
{
int i;
for(i=1; i<=n; i++)
d[i]=INF;
q.push(x);
d[x]=0;
viz[x]=1;
while(!q.empty())
{
int nod=q.front();
q.pop();
for(auto it:v[nod])
{
if(viz[it.first]==0)
{
viz[it.first]=1;
int nou=it.first;
int cost=it.second;
if(d[nou]>d[nod]+cost)
{
d[nou]=d[nod]+cost;
q.push(nou);
}
}
}
}
}
signed main()
{
int i,x,y,c;
f>>n>>m>>x2>>y2;
for(i=1; i<=m; i++)
{
f>>x>>y>>c;
v[x].push_back(make_pair(y,c));
v[y].push_back(make_pair(x,-c));
}
bfs(x2);
g<<d[y2];
return 0;
}