题解 | #铺地毯#

铺地毯

https://ac.nowcoder.com/acm/problem/16593

我所用解法的核心:判断(x,y)是否在毯子的范围内,如果在,则更新color(即所指定点所覆盖的毯子编号),如果不在,则不用管

#include <iostream>
using namespace std;

int a[10100], b[10100], g[10100], k[10100]; //记录每个毯子的左下角坐标及长和宽
int n; //毯子的数量
int x, y; //被覆盖点的坐标

int main(void)
{
    cin >> n;
    int color = 0; //记录被覆盖点现在铺着哪块毯子

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

    cin >> x >> y;

    //遍历每个毯子
    for(int i = n; i >= 1; i--)
    {
        //如果x、y在毯子覆盖的范围内,则更新覆盖点的毯子编号
        if(x >= a[i] && x <= a[i]+g[i] && y >= b[i] && y <= b[i]+k[i])
        {
            color = i;
            break;
        }
    }
    cout << color << endl;

    return 0;
}
全部评论

相关推荐

牛客57020934...:双非本投Seed吗,这种都是在9本9硕上还要挑一堆论文竞赛的岗
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
03-19 10:38
实力求职者:真的绷不住了,第一张霸总人设,第二张求生欲拉满
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务