Pagini recente » Cod sursa (job #2294383) | Cod sursa (job #130316) | Cod sursa (job #2302706) | Cod sursa (job #2504108) | Cod sursa (job #1759467)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");
int n,m,i,j,q[30002],d[30002],distanta,x,y,st,dr,x0,y0;
vector<int> a[30002],dist[30002];
int main()
{
f>>n>>m>>x0>>y0;
for(i=1;i<=m;i++)
{
f>>x>>y>>distanta;
a[x].push_back(y);
a[y].push_back(x);
dist[x].push_back(distanta);
dist[y].push_back(distanta);
}
for(i=0;i<=n;i++) d[i]=-1;
st=1; dr=1; q[st]=x0; d[st]=0;
while(st<=dr)
{
x=q[st++];
for(j=0;j<a[x].size();j++)
{
y=a[x][j];
if(d[y]<0)
{
q[++dr] = y;
if(y>x) d[y]=d[x]+dist[x][j];
else d[y]=d[x]-dist[x][j];
cout<<a[x].size()<<' ';
}
}
}
g<<d[y0]<<'\n';
return 0;
}