你傻啊
10000\*100000的数组不爆我吃poop
by VenusM1nT @ 2017-10-03 20:45:29
@[shuxinyu](/space/show?uid=33183)
你的方法不太对
这题虽然是模拟但也不像你这么暴力的啊
换一个思路做
by VenusM1nT @ 2017-10-03 20:46:56
```cpp
#include <iostream>
using namespace std;
int main()
{
int n,i,x,y,ans;
int a[10003][4];
cin>>n;
for(i=0;i<n;i++)
cin>>a[i][1]>>a[i][2]>>a[i][3]>>a[i][4];
cin>>x>>y;
for(i=0;i<n;i++)
if((a[i][1]<=x)&&(a[i][2]<=y)&&(a[i][1]+a[i][3]>=x)&&(a[i][2]+a[i][4]>=y))
ans=i;
cout<<ans+1<<endl;
return 0;
}
```
by awask @ 2017-10-07 20:36:36
lz的方法有点问题,这道题目可以直接模拟,少解释上代码:
```cpp
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
using namespace std;
int a[100001],b[100001],l1[100001],l2[100001];
int main()
{
int i,n,x,y;
freopen("carpet10.in","r",stdin);
freopen("carpet10.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++) scanf("%d%d%d%d",&a[i],&b[i],&l1[i],&l2[i]);
scanf("%d%d",&x,&y);
for(i=n;i>=1;i--)
if(x>=a[i] && x<=a[i]+l1[i] && y>=b[i] && y<=b[i]+l2[i])
{
printf("%d",i);
break;
}
if(i==0) printf("-1");
return 0;
}
```
by andyc_03 @ 2017-10-08 10:38:38
题解:
```cpp
#include<iostream>
#include<cstdio>
using namespace std;
int n,x,y;
int num=-1;
struct ss{
int sx,sy;
int ex,ey;
}card[1000001];
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>card[i].sx>>card[i].sy;
cin>>x>>y;
card[i].ex=card[i].sx+x;
card[i].ey=card[i].sy+y;
}
cin>>x>>y;
for(int i=1;i<=n;i++)
{
if(card[i].sx<=x&&card[i].sy<=y)
if(card[i].ex>=x&&card[i].ey>=y)
num=i;
}
cout<<num;
}
```
by 魂逝_秦月歌 @ 2017-10-16 22:22:15