评测记录
以上为评测记录,以下为代码:
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
cin >> n;
int arr[6003][6003] = {0};
for(int i=0;i<n;i++){
int a,b,g,k;
cin >> a >> b >> g >> k;
for(int j=a;j<=g;j++){
for(int l=b;l<=k;l++){
arr[j][l] = i+1;
}
}
}
int a,b;
cin >> a >> b;
if(arr[a][b] == 0){
cout << "-1";
}else{
cout << arr[a][b];
}
return 0;
}
主要原因在于第 7 行分配 arr 数组时,分配太大造成 MLE。事实上应该开 10005 的。
但是,数据范围规定,a,b,g,k≤105。所以,必须数组开大,否则会产生 RE 错误。
这该怎么优化呢?