求助,为什么会MLE,amazing我不明白
  • 板块学术版
  • 楼主content
  • 当前回复9
  • 已保存回复9
  • 发布时间2021/8/6 09:47
  • 上次更新2023/11/4 11:52:03
查看原帖
求助,为什么会MLE,amazing我不明白
429854
content楼主2021/8/6 09:47

题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯。一共有 nn 张地毯,编号从 11 到 nn。现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设,后铺的地毯覆盖在前面已经铺好的地毯之上。

地毯铺设完成后,组织者想知道覆盖地面某个点的最上面的那张地毯的编号。注意:在矩形地毯边界和四个顶点上的点也算被地毯覆盖。

输入格式 输入共 n + 2n+2 行。

第一行,一个整数 nn,表示总共有 nn 张地毯。

接下来的 nn 行中,第 i+1i+1 行表示编号 ii 的地毯的信息,包含四个整数 a ,b ,g ,ka,b,g,k,每两个整数之间用一个空格隔开,分别表示铺设地毯的左下角的坐标 (a, b)(a,b) 以及地毯在 xx 轴和 yy 轴方向的长度。

第 n + 2n+2 行包含两个整数 xx 和 yy,表示所求的地面的点的坐标 (x, y)(x,y)。

输出格式 输出共 11 行,一个整数,表示所求的地毯的编号;若此处没有被地毯覆盖则输出 -1。``` #include<bits/stdc++.h> using namespace std;

typedef long long ll; #define re register

inline ll read() { char c=getchar();ll f=1,d=0; while(c<'0' || c>'9'){if(c=='-')f=-1;c=getchar();} while(c>='0' && c<='9'){d=(d<<3)+(d<<1)+(c^48);c=getchar();} return d*f; } int n,b=0,x,y; int a[10002][10002]; int main() { cin>>n; for(int i=1;i<=n;i++) { for(int j=1;j<=4;j++) { cin>>a[i][j]; } } cin>>x>>y; for(int i=n;i>=1;i--) { if(x<=a[i][1]+a[i][3]&&x>=a[i][1]&&y<=a[i][2]+a[i][4]&&y>=a[i][2]) { cout<<i; b=1; } if(b==1)break; if(i==1) { cout<<"-1"; break; } } return 0; }

这有啥能MLE的?卡了四个点。那我走?希望有大佬能帮忙看看,这个题没什么难度的。
2021/8/6 09:47
加载中...