题目连接:http://codeforces.com/problemset/problem/393/B
#include <cstdio>
#include <cstring>
double w[171][171];
double a[171][171];
double b[171][171];
int n;
int main()
{
int i,j;
while(~scanf("%d",&n))
{
memset(w,0,sizeof(w));
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
for(i=1;i<=n;++i)
{
for(j=1;j<=n;++j)
{
scanf("%lf",&w[i][j]);
}
}
for(i=1;i<=n;++i)
{
for(j=i;j<=n;++j)
{
a[i][j]=(w[i][j]+w[j][i])/2;
a[j][i]=a[i][j];
b[i][j]=w[i][j]-a[i][j];
b[j][i]=b[i][j]-(2*b[i][j]);
}
}
for(i=1;i<=n;++i)
{
for(j=1;j<=n;++j)
{
if(j==1)
printf("%.8lf",a[i][j]);
else
printf(" %.8lf",a[i][j]);
}
printf("\n");
}
for(i=1;i<=n;++i)
{
for(j=1;j<=n;++j)
{
if(j==1)
printf("%.8lf",b[i][j]);
else
printf(" %.8lf",b[i][j]);
}
printf("\n");
}
}
return 0;
}