有n行m列大小相同的正方形紧密排列,令(x,y)为x行第y个正方形,求该正方形与多少个正方形相邻。
两个正方形相邻定义为两个正方形拥有一条公共边。
Input第一行输入一个正整数T(T≤4000),代表测试数据的组数,接下来T行每行四个正整数n,m,x,y,含义如题所述。
1≤x≤n≤10,1≤y≤m≤10
Output输出与(x,y)相邻的正方形个数。
Sample Input3
3 4 2 2
3 4 1 3
3 4 3 4
Sample Output4
3
2
HINT样例1:(2,2)与(2,1),(1,2),(2,3),(3,2)四个正方形相邻。
样例2:(1,3)与(1,2),(1,4),(2,3)三个正方形相邻。
样例3:(3,4)与(3,3),(2,4)两个正方形相邻。
解析:我们只要判断(x,y)上下左右是否存在正方形即可,我们可以利用二维数组来标记是否存在。
#include#include int a[15][15]; int main() { int n,t,i,s,x,y,cnt,m; scanf("%d",&t); while(t--){ cnt=0; //计数 memset(a,0,sizeof(a)); //先初始为0,表示不存在正方形 scanf("%d%d%d%d",&n,&m,&x,&y); for(i=1;i<=n;i++){ for(s=1;s<=m;s++) a[i][s]=1; //n行m列存在正方形 } if(a[x-1][y]==1) cnt++; //上 if(a[x+1][y]==1) cnt++; //下 if(a[x][y-1]==1) cnt++; //左 if(a[x][y+1]==1) cnt++; //右 printf("%dn",cnt); } return 0; }



