gpt4 book ai didi

c++ - 我的代码通过了测试用例,但是在我提交时显示了错误的答案

转载 作者:行者123 更新时间:2023-12-02 10:29:56 27 4
gpt4 key购买 nike

有两个矩形相框。查找给定的两个帧是否重叠。框架通过提供
X

ÿ
两点的坐标:框架的左上角和右下角。共享一侧的两个框架被认为是重叠的。
输入格式
第一个整数
Ť
表示测试用例的数量。对于每个测试用例,都有
2
输入行。
第一行包括
4
整数:表示
2
第一帧的点数。第一个整数表示
X
坐标,第二个整数表示
ÿ
第一帧左上角的坐标。接下来的两个整数是
X

ÿ
右下角的坐标。类似地,第二条线以类似的方式表示第二帧的两个点的坐标。
输出格式
对于每个测试用例,输出(
1个
要么
0
)表示是否
2
框架重叠。
1个
表示帧重叠,而
0
表示帧不重叠。
约束条件
1个
<=
Ť
<=
10
-
10
4
<=
X
<=
10
4
-
10
4
<=
ÿ
<=
10
4
时限
1秒
输入示例:

2
0 10 10 0
5 5 15 0
0 2 1 1
-2 -3 0 2
输出:
1
0
我的代码:
#include <bits/stdc++.h>
using namespace std;

struct Point
{
int x, y;
};

bool doOverlap(Point l1, Point r1, Point l2, Point r2)
{
if (l1.x >= r2.x || l2.x >= r1.x)
return false;

if (l1.y <= r2.y || l2.y <= r1.y)
return false;

return true;
}

int main()
{
int t,l1x,l1y,r1x,r1y,l2x,l2y,r2x,r2y,l1,r1,l2,r2;
cin>>t;
while(t-- >0)
{
cin>>l1x;
cin>>l1y;
cin>>r1x;
cin>>r1y;
cout<<endl;
cin>>l2x;
cin>>l2y;
cin>>r2x;
cin>>r2y;

Point l1 = {l1x,l1y};
Point r1 = {r1x,r1y};
Point l2 = {l2x,l2y};
Point r2 = {r2x,r2y};

if (doOverlap(l1, r1, l2, r2)) {
cout<<"1";
}
else{
cout<<"0";
}
}
return 0;
}

最佳答案

共享一侧的两个框架被认为是重叠的。
当您的代码考虑共享一侧时,不会通过使用>=<=进行覆盖。
以下是没有等号的示例。

bool doOverlap(Point l1, Point r1, Point l2, Point r2) 
{
if (l1.x > r2.x || l2.x > r1.x)
return false;

if (l1.y < r2.y || l2.y < r1.y)
return false;

return true;
}

关于c++ - 我的代码通过了测试用例,但是在我提交时显示了错误的答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62631702/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com