咋会有一个不过捏
查看原帖
咋会有一个不过捏
1191445
linlinwenl楼主2024/10/21 13:54
#include <bits/stdc++.h>
using namespace std;

struct carpet {
    int x;
    int y;
    int x1; // 表示所在点x的最大值
    int y1; // 表示所在点y的最大值
    carpet(int x, int y, int x1, int y1) : x(x), y(y), x1(x + x1), y1(y + y1) {} // 定义构造函数
    carpet() {}
};

int main() {
    int n; // 个数
    cin >> n; // 读取地毯数量
    carpet c[n];
    
    for (int i = 0; i < n; i++) {
        cin >> c[i].x >> c[i].y >> c[i].x1 >> c[i].y1; // 地毯覆盖的信息
    }
    
    int a, b;
    cin >> a >> b; // 所要求点的位置

    // 从下到上遍历地毯,找到覆盖的地毯
    for (int i = n - 1; i >= 0; i--) {
        // 检查点 (a, b) 是否在当前地毯内
        if ((a >= c[i].x && a <= c[i].x1) && (b >= c[i].y && b <= c[i].y1)) {
            cout << i + 1; // 输出第 i + 1 个地毯
            return 0; // 找到后直接返回
        }
    }
    
    cout << -1; // 如果没有找到,输出 -1
    return 0;
}
2024/10/21 13:54
加载中...