第一次代码
#include<bits/stdc++.h>
using namespace std;
int x,y;
int n,f=0;
int a,b,g,k;
int zb[20001][20001];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a>>b>>g>>k;
f++;
for(int i=a;i<=a+g;i++){
for(int j=b;j<=b+k;j++){
zb[i][j]=f;
}
}
}
scanf("%d%d",&x,&y);
if(zb[x][y]==0) cout<<-1;
else cout<<zb[x][y];
return 0;
}
然后我就把数组开大
结果成这样
第二次代码
#include<bits/stdc++.h>
using namespace std;
int x,y;
int n,f=0;
int a,b,g,k;
int zb[200001][200001];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a>>b>>g>>k;
f++;
for(int i=a;i<=a+g;i++){
for(int j=b;j<=b+k;j++){
zb[i][j]=f;
}
}
}
scanf("%d%d",&x,&y);
if(zb[x][y]==0) cout<<-1;
else cout<<zb[x][y];
return 0;
}