砌砖 Add bricks in the wall
题目描述
输入格式
输出格式
样例 #1
样例输入 #1
2
255
54 67
10 18 13
3 3 5 2
2 1 2 1 1
256
64 64
16 16 16
4 4 4 4
1 1 1 1 1
样例输出 #1
255
121 134
54 67 67
23 31 36 31
10 13 18 18 13
5 5 8 10 8 5
3 2 3 5 5 3 2
2 1 1 2 3 2 1 1
2 0 1 0 2 1 1 0 1
256
128 128
64 64 64
32 32 32 32
16 16 16 16 16
8 8 8 8 8 8
4 4 4 4 4 4 4
2 2 2 2 2 2 2 2
1 1 1 1 1 1 1 1 1
直接找i+1层,j+1个数;i+1层,j个数;i+2层,j+1个数的规律即可。
代码
#include<bits/stdc++.h>
using namespace std;
int a[20][20];
int T;
int main()
{
cin>>T;
while(T--)
{
for(int i=0;i<=8;i+=2)
{
for(int j=0;j<=i;j+=2)
{
cin>>a[i][j];
}
}
for(int i=6;i>=0;i-=2)
{
for(int j=0;j<=i;j+=2)
{
a[i+2][j+1]=(a[i][j]-a[i+2][j]-a[i+2][j+2])/2;
a[i+1][j]=a[i+2][j+1]+a[i+2][j];
a[i+1][j+1]=a[i+2][j+1]+a[i+2][j+2];
}
}
for(int i=0;i<=8;i++)
{
for(int j=0;j<=i;j++)
{
cout<<a[i][j];
if(j<i)
{
cout<<" ";
}
}
cout<<endl;
}
}
return 0;
}