解题思路:

从最层地毯开始,一直到最层地毯循环。

判断坐标(x,y)是否在此层地毯的范围内,

编号应该保持为( 满足情况 地毯的编号)。


注意事项:

将编号赋值为0(n以外的也可以,但0最省事),

在没有找到地毯的时候:

        编号没有改变,值依然为0

        加以判断,输出结果-1


参考代码:

    #include<bits/stdc++.h>

    using namespace std;

    const int N=10005;//数组范围

    int a[N],b[N],g[N],k[N];//分别为:左下角x轴,左下角y轴,地面的点x轴,地面的点y

        int main(){

        int n;//数据数量

        cin>>n;

        for(int i=1;i<=n;i++) cin>>a[i]>>b[i]>>g[i]>>k[i];//输入数据

        int x,y;//地面的点的坐标

        cin>>x>>y;

        int bianhao=0;//编号,先赋值为0

        for(int i=1;i<=n;i++) if((x>=a[i]&&x<=a[i]+g[i])&&(y>=b[i]&&y<=b[i]+k[i])) bianhao=i;

        //a[i]x轴最端,a[i]+g[i]x轴最端;b[i]y轴最端,b[i]+k[i]是y轴最

        if(bianhao==0) cout<<"-1";//判断是否找到地毯,如果没有,输出-1

        else cout<<bianhao;//找到地毯,则输出地毯编号

        return 0;

    }

如果有问题,请通知改正!

点赞(1)
 

0.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 1 条评论

郑漠川 3周前 回复TA
忘了在哪儿看到的,顺便搬运一下