思路:
看到这题我有想过前缀和、差分,但是后来发现,这题其实是个思维题,贪心也行吧。
从先存完数据,然后从后往前枚举,遇到第一个囊括询问的点时就输出是第几个毛毯接着退出程序。
Code:
#include<bits/stdc++.h>
#define js ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)
using namespace std;
struct node{
int x,y,shang,you;
}q[10005];
int main() {
js; int n,x,y;
cin>>n;
for(int i=1;i<=n;++i) cin>>q[i].x>>q[i].y>>q[i].you>>q[i].shang;
cin>>x>>y;
for(int i=n;i;--i) {
if(x<q[i].x||y<q[i].y) continue;
if(x-q[i].x<=q[i].you&&y-q[i].y<=q[i].shang) {
cout<<i<<"\n";
return 0;
}
}
} 
京公网安备 11010502036488号