| Run ID | 作者 | 问题 | 语言 | 测评结果 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|
| 81329 | sh25_huangse | 铺地毯 | C++ | 通过 | 0 MS | 260 KB | 913 | 2026-01-04 15:46:23 |
#include <iostream> using namespace std; int main() { int n; cin >> n; // 存储地毯信息:a,b,g,k int carpet[10005][4]; // 假设n ≤ 10000 for (int i = 1; i <= n; i++) { cin >> carpet[i][0] >> carpet[i][1] >> carpet[i][2] >> carpet[i][3]; } int x, y; cin >> x >> y; int ans = -1; // 初始化为-1,表示未被覆盖 // 从后往前遍历(因为后铺的在上层) for (int i = n; i >= 1; i--) { int a = carpet[i][0], b = carpet[i][1]; int g = carpet[i][2], k = carpet[i][3]; // 检查点(x,y)是否在当前地毯内(包括边界) if (a <= x && x <= a + g && b <= y && y <= b + k) { ans = i; // 找到最上层覆盖的地毯 break; // 立即退出,因为是从后往前找的第一个 } } cout << ans << endl; return 0; }