Pagini recente » Cod sursa (job #3136371) | Istoria paginii propuneri | Monitorul de evaluare | Cod sursa (job #1782945) | Cod sursa (job #67664)
Cod sursa(job #67664)
#include <fstream.h>
#include <math.h>
int a[302][302];
int main()
{
int n,i,j,k,x,y,tz,sh;
long d,m;
ifstream in("sate.in");
in>>n>>m>>x>>y;
for(i=1;i<=m;i++)
{
in>>tz>>sh>>d;
a[tz][sh]=a[sh][tz]=d;
}
in.close();
ofstream out("sate.out");
if(a[x][y]!=0) {out<<a[x][y]<<'\n';out.close();return 0;}
for(k=1;k<=n;k++)
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
if(a[i][j]!=0&&a[i][k]!=0&&a[j][k]==0)
{
if(i<j&&i<k)
a[j][k]=a[k][j]=abs(a[i][k]-a[i][j]);
else if(j<i&&j<k)
{
if(i<k)
a[j][k]=a[k][j]=a[i][j]+a[i][k];
else
a[j][k]=a[k][j]=a[i][j]-a[i][k];
}
else
{
if(i<j)
a[j][k]=a[k][j]=a[i][j]+a[i][k];
else
a[j][k]=a[k][j]=a[k][i]-a[j][i];
}
}
}
out<<a[x][y]<<'\n';
out.close();
return 0;
}