Pagini recente » Cod sursa (job #253270) | Cod sursa (job #114144) | Cod sursa (job #3268086) | Cod sursa (job #3177818) | Cod sursa (job #1399601)
# include<iostream>
# include<fstream>
using namespace std;
ifstream f("sate.in",ios::in);
ofstream g("sate.out");
int n,m,a[1001][1001],viz[1001],c[1001],d[1001],t[1001],p,u,i,x,y,Start,Sosire,dist;
int main()
{
f>>n>>m>>Start>>Sosire;
for(i=1;i<=m;i++)
{
f>>x>>y>>dist;
cout<<x<<" "<<y<<" "<<dist<<"\n";
a[x][y]=a[y][x]=dist;
}
c[1]=Start;
viz[Start]=1;
p=u=1;
while(p<=u)
{
y=c[p];
for(i=1;i<=n;i++)
if(a[i][y]!=0 && viz[i]==0)
{
viz[i]=1;
u++;
c[u]=i;
t[i]=y;
}
p++;
}
int Sos=Sosire;
d[1]=Sosire;
int k=1;
dist=0;
while(Sosire!=Start)
{
k++;
d[k]=t[Sosire];
if(Sosire>t[Sosire])
dist+=a[Sosire][t[Sosire]];
else dist-=a[Sosire][t[Sosire]];
Sosire=t[Sosire];
}
if(dist!=0)
{
// cout<<"Drumul de la "<<Start<<" pana la "<<Sos<<" este:\n";
//fo//r(i=k;i>=1;i--)
// cout<<d[i]<<" ";
//cout<<"\n";
g<<dist;
}
else cout<<"Distanta nu poate fi calculata\n";
cout<<dist;
return 0;
}