Pagini recente » Cod sursa (job #132043) | Cod sursa (job #1186181) | Statisticile problemei Cuvinte | Cod sursa (job #1067909) | Cod sursa (job #2312056)
#include<cstdio>
#define M 2000000
int d[100][100];
char n,i=-1,l,j,k,s[M],p,q,r;
int A()
{
int t=0;
if(s[i+1]=='\n')
i++;
for(i++;s[i]>='0';i++)
t=t*10+s[i]-48;
return t;
}
void S(int b,char c)
{
char e[100];
int j;
if(!b)
s[k++]=48;
else
{
for(j=0;b;b/=10,j++)
e[j]=b%10+48;
for(j--;j>=0;j--)
s[k++]=e[j];
}
s[k++]=c;
}
int main()
{
freopen("royfloyd.in","r",stdin),freopen("royfloyd.out","w",stdout),fread(s,1,M,stdin),n=A();
for(l=0;l<n;l++)
for(j=0;j<n;j++)
d[l][j]=A();
for(p=0;p<n;p++)
for(q=0;q<n;q++)
for(r=0;r<n;r++)
if(q!=r&&d[q][p]&&d[p][r]&&(!d[q][r]||d[q][r]>d[q][p]+d[p][r]))
d[q][r]=d[q][p]+d[p][r];
for(k=i=0;i<n;i++)
{
for(j=0;j<n;j++)
S(d[i][j],' ');
s[k++]='\n';
}
fwrite(s,1,k,stdout);
}