Pagini recente » Cod sursa (job #1878225) | Cod sursa (job #1602066) | Cod sursa (job #2974876) | Cod sursa (job #2145518) | Cod sursa (job #896769)
Cod sursa(job #896769)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream in("sate.in");
ofstream out("sate.out");
vector<int> a[30001], b[30001];
int x,y,n,m,i,d[300001],z,g,c,h;
queue<int>q;
int main(){
in>>n>>m>>x>>y;
for(i=1;i<=m;i++)
{
in>>g>>h>>c;
a[g].push_back(h);
b[g].push_back(c);
a[h].push_back(g);
b[h].push_back(-c);
}
for(i=1;i<=n;i++) d[i]=-1;
d[x]=0; q.push(x);
while(!q.empty())
{
x=q.front();
q.pop();
for(i=0;i<a[x].size();i++)
{
z=a[x][i];
if(d[z]==-1)
{
q.push(z);
d[z]=d[x]+b[x][i];
if(z==y)
{
out<<d[y];
return 0;
}
}
}
}
return 0;
}