想了一下,参考了ai的思路用栈实现这个题目.先将所有的地毯压入栈,然后出栈判断(x,y)是否在出栈地毯范围内,找到的第一张就是top,就return;但是为什么还有一个样例过不了呢?
#include<iostream>
#include<stack>
using namespace std;
stuct CP{
int x1,y1,x2,y2,id;
};
int main()
{
int n;
cin>>n;
int ans = 0;
stack<CP> cp;
for(int i = 1;i<=n;i++){
int x1,y1,x2,y2;
cin>>x1>>y1>>x2>>y2;
CP.push({x1,y1,x2,y2,i});
}
int x,y;
cin>>x>>y;
while(!CP.empty()){
CP top1 = cp.top();
cp.pop();
if(x>top1.x1&&x<top1.x2&&y>top1.y1&&y<top1.y2){
ans = top1.id;
break;
}
}
if(ans>0) cout<<ans;
else cout<<"-1"<<endl;
return 0;
}
不太理解emmmm