[测试点](https://www.luogu.com.cn/record/129135156)
by laozhang_123 @ 2023-10-28 18:35:19
应该是数组开的不够大,看数据范围
by STG__ @ 2023-10-29 18:04:21
我也没过。。。40
by STG__ @ 2023-10-29 18:05:06
不是数组大不大的问题,你这个程序和我最初想的一样,但程序存在两个问题:
1.运行超时;
2.内存超额;
可以参考我的程序:```
#include<cstdio>
using namespace std;
int n,x,y,a[10001],b[10001],g[10001],k[10001],p=-1;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d%d%d%d",&a[i],&b[i],&g[i],&k[i]);//输入
}
scanf("%d%d",&x,&y);
for(int i=n;i>=1;i--)//从最上面的开始判断
{
if(x>=a[i]&&y>=b[i]&&x<=a[i]+g[i]&&y<=b[i]+k[i])//如果点在这个地毯的范围之内
{
p=i;//那么最终的答案是第xx个地毯
break;//退出,不要继续往下判断
}
}
printf("%d",p);//输出
return 0;
}
```
by blue7628 @ 2023-11-03 23:16:20
```
#include<cstdio>
using namespace std;
int n,x,y,a[10001],b[10001],g[10001],k[10001],p=-1;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d%d%d%d",&a[i],&b[i],&g[i],&k[i]);//输入
}
scanf("%d%d",&x,&y);
for(int i=n;i>=1;i--)//从最上面的开始判断
{
if(x>=a[i]&&y>=b[i]&&x<=a[i]+g[i]&&y<=b[i]+k[i])//如果点在这个地毯的范围之内
{
p=i;//那么最终的答案是第xx个地毯
break;//退出,不要继续往下判断
}
}
printf("%d",p);//输出
return 0;
}
```
刚才那个看不太清
by blue7628 @ 2023-11-03 23:18:19