题解 P1003 【铺地毯】
NotEvenANeko · · 题解
一开始想开个二维数组去搞 然后看到数据范围...
算了一下如果开int要40000mb...肯定MLE的
然后想到通过地毯最左下角和最右上角去判断点在不在范围里
代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<fstream>
#include<queue>
#include<stack>
#include<vector>
#define MAXN 10005
using std::cout;
using std::endl;
using std::cin;
int a[MAXN],b[MAXN],g[MAXN],k[MAXN];
inline int read_int() //想写个读入优化然后交上去WA...换cin就AC了
{
int ans=0;
char temp;
temp=getchar();
bool flag=false;
if(temp=='-')
{
flag=true;
temp=getchar();
}
while(temp<='9'&&temp>='0')
{
ans=ans*10+temp-48;
temp=getchar();
}
if(flag)
ans=0-ans;
return ans;
}
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i]>>b[i]>>g[i]>>k[i];
int x,y;
cin>>x>>y;
int up=-1;
for(int i=0;i<n;i++)
if(a[i]<=x&&a[i]+g[i]>=x&&b[i]<=y&&b[i]+k[i]>=y) //判断在不在范围内
up=i+1;
cout<<up;
return 0;
}