题:
思路:
这题的意思是要输出覆盖在最上面的地毯的编号,所以可以从后往前遍历,创一个数组去存数据,然后判断要求的那个坐标在不在地毯范围内,在的话就输出地毯编号,否则输出-1。
注:这题之前犯了一个很蠢的错误,就是开了二维数组去存平面,然后一个个去遍历加一,虽然样例答案算出来是对的,但是很明显会超时超内存。
#include<iostream>
using namespace std;
int B[10005][5];
int main()
{
int t;
cin>>t;
for(int i=1;i<=t;++i)
{
for(int j=0;j<4;++j)
{
cin>>B[i][j];
}
}
int x,y,flag=0;
cin>>x>>y;
for(int i=t;i>=0;--i)
{
if(B[i][0]<=x&&B[i][1]<=y&&B[i][0]+B[i][2]>=x&&B[i][1]+B[i][3]>=y)
{
cout<<i<<endl;
flag=1;
break;
}
}
if(flag==0)
cout<<"-1"<<endl;
return 0;
}