算法比赛真是属于同类比赛中最耗时间的了,有时候一个题一个小时都拿不下。不说了先看下这个题的解法
#include <bits/stdc++.h>
using namespace std;
int a[100001], b[100001], g[100001], k[100001];
int n;
int x, y;
int cnt= -1;
int main(){
cin >> n;
for (int i = 1; i <= n; i++){
cin >> a[i] >> b[i] >> g[i] >> k[i];
}
cin >> x >> y;
for (int i = 1; i <= n; i++){
if (x >= a[i] && x <= a[i]+g[i] && y >= b[i] && y <= b[i]+k[i]){
cnt = i;
}
}
cout << cnt;
return 0;
}
思路很简单,就是枚举,但这里不要枚举每个点,因为我们已经定下来了一个点,所以我们只要判断这个点是否位于新盖的的毯子上就OK了,其他位置上的毯子我们不关注。
我这里出了一次错误:
1.忘了没有毯子输出-1