题解 P1003 [铺地毯]

题目来源 P1003https://www.luogu.com.cn/problemnew/show/P1003

判断要求的点在哪些地毯范围内即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <cstring>
#include <cstdio>
#include <vector>
using namespace std;

vector<int> a, b, lenx, leny;
int n, x, y, set = 0;

void cover(int);

int main()
{
cin >> n;
int tmp;
for (int i = 0; i < n; i++)
{
cin >> tmp; a.push_back(tmp);
cin >> tmp; b.push_back(tmp);
cin >> tmp; lenx.push_back(tmp);
cin >> tmp; leny.push_back(tmp);
}
cin >> x >> y;
for (int i = 0; i < n; i++)
cover(i);

if (set == 0) cout << -1;
else cout << set;

return 0;
}
void cover(int k)
{
int i = x - a[k], j = y - b[k];
if (i >= 0 && i <= lenx[k] && j >= 0 && j <= leny[k])
set = k + 1;
}

本文作者:Xecades

本文链接:https://blog.xecades.xyz/drafts/solution-p1003.html

文章默认使用 CC BY-NC-SA 4.0 协议进行许可,使用时请注意遵守协议。

评论