【正经题解】铺地毯
2024-02-21 10:43:54
发布于:美国
49阅读
0回复
0点赞
用两个数组存每张地毯的左下角和右上角,再从后向前一张一张推,遇到要求的点在地毯内就输出并退出。
#include <iostream>
using namespace std;
int a[10001][2],b[10001][2],x,y,i,n,m;
int main()
{
scanf ("%d",&i);
for (int j=1;j<=i;j++) {scanf("%d%d%d%d",&a[j][0],&a[j][1],&n,&m); b[j][0]=a[j][0]+n; b[j][1]=a[j][1]+m;}
scanf ("%d%d",&x,&y);
for (int j=i;j>=1;j--)
if (x>=a[j][0]&&x<=b[j][0]&&y>=a[j][1]&&y<=b[j][1]) {printf("%d",j); return 0;}
cout <<-1; return 0;
}
全部评论 3
#include <iostream> using namespace std; int a[10001][2],b[10001][2],x,y,i,n,m; int main() { scanf ("%d",&i); for (int j=1;j<=i;j++) { scanf("%d%d%d%d",&a[j][0],&a[j][1],&n,&m); b[j][0]=a[j][0]+n; b[j][1]=a[j][1]+m; } scanf ("%d%d",&x,&y); for (int j=i;j>=1;j--) { if (x>=a[j][0]&&x<=b[j][0]&&y>=a[j][1]&&y<=b[j][1]) { printf("%d",j); return 0; } } cout <<-1; return 0; }//带缩进版!
昨天 来自 北京
12天前 来自 广东
0不愧是AC君
2天前 来自 广东
0
有帮助,赞一个