栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

ZCMU--5237: 正方形排列(C语言)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ZCMU--5237: 正方形排列(C语言)

Description

有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 Input

3

3  4  2  2 

3  4  1  3

3  4  3  4

Sample Output

4

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;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/893216.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号