QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#818284 | #9668. Isoball: 2D Version | ccsurzw | AC ✓ | 19ms | 3816kb | C++23 | 4.1kb | 2024-12-17 18:14:06 | 2024-12-17 18:14:06 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define x first
#define y second
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef pair<double, double> pdd;
#define int long long
void solve()
{
long double x, y, r, vx, vy;
long double lx, ly, rx, ry;
cin >> x >> y >> r >> vx >> vy;
cin >> lx >> ly >> rx >> ry;
if (vx == 0)
{
if (vy < 0)
{
if (y - r >= ly)
{
if (lx <= x - r && x - r <= rx)
{
if (lx <= x + r && x + r <= rx)
{
if (ry - ly >= 2 * r)
{
cout << "Yes" << endl;
return;
}
}
}
}
}
else
{
if (y + r <= ry)
{
if (lx <= x - r && x - r <= rx)
{
if (lx <= x + r && x + r <= rx)
{
if (ry - ly >= 2 * r)
{
cout << "Yes" << endl;
return;
}
}
}
}
}
cout << "No" << endl;
return;
}
if (vy == 0)
{
if (vx > 0)
{
if (x + r <= rx)
{
if (ly <= y - r && y - r <= ry)
{
if (ly <= y + r && y + r <= ry)
{
if (rx - lx >= 2 * r)
{
cout << "Yes" << endl;
return;
}
}
}
}
}
else
{
if (x - r >= lx)
{
if (ly <= y - r && y - r <= ry)
{
if (ly <= y + r && y + r <= ry)
{
if (rx - lx >= 2 * r)
{
cout << "Yes" << endl;
return;
}
}
}
}
}
cout << "No" << endl;
return;
}
pair<long double, long double> o1, o2, o3, o4;
o1.x = lx + r;
o1.y = vy * (o1.x - x) / vx + y;
o3.x = rx - r;
o3.y = vy * (o3.x - x) / vx + y;
o2.y = ry - r;
o2.x = vx * (o2.y - y) / vy + x;
o4.y = ly + r;
o4.x = vx * (o4.y - y) / vy + x;
bool s1 = 1, s2 = 1, s3 = 1, s4 = 1;
if (vx > 0)
{
if (o1.x < x) s1 = 0;
if (o2.x < x) s2 = 0;
if (o3.x < x) s3 = 0;
if (o4.x < x) s4 = 0;
}
else
{
if (o1.x > x) s1 = 0;
if (o2.x > x) s2 = 0;
if (o3.x > x) s3 = 0;
if (o4.x > x) s4 = 0;
}
if (vy > 0)
{
if (o1.y < y) s1 = 0;
if (o2.y < y) s2 = 0;
if (o3.y < y) s3 = 0;
if (o4.y < y) s4 = 0;
}
else
{
if (o1.y > y) s1 = 0;
if (o2.y > y) s2 = 0;
if (o3.y > y) s3 = 0;
if (o4.y > y) s4 = 0;
}
if (o1.x + r > rx) s1 = 0;
if (o2.y - r < ly) s2 = 0;
if (o3.x - r < lx) s3 = 0;
if (o4.y + r > ry) s4 = 0;
if (o1.x - r < lx || o1.x + r > rx) s1 = 0;
if (o1.y - r < ly || o1.y + r > ry) s1 = 0;
if (o2.x - r < lx || o2.x + r > rx) s2 = 0;
if (o2.y - r < ly || o2.y + r > ry) s2 = 0;
if (o3.x - r < lx || o3.x + r > rx) s3 = 0;
if (o3.y - r < ly || o3.y + r > ry) s3 = 0;
if (o4.x - r < lx || o4.x + r > rx) s4 = 0;
if (o4.y - r < ly || o4.y + r > ry) s4 = 0;
if (s1 || s2 || s3 || s4) {
cout << "Yes" << endl;
return;
}
cout << "No" << endl;
}
signed main()
{
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int t = 1;
cin >> t;
while (t--)
{
solve();
}
}
这程序好像有点Bug,我给组数据试试?
詳細信息
Test #1:
score: 100
Accepted
time: 0ms
memory: 3784kb
input:
5 0 0 1 1 0 2 -2 6 2 0 0 1 1 0 2 0 6 2 0 0 1 1 1 1 1 3 3 0 0 1 -1 -1 1 1 3 3 0 0 1 -1 1 -5 -5 5 5
output:
Yes No Yes No Yes
result:
ok 5 lines
Test #2:
score: 0
Accepted
time: 0ms
memory: 3676kb
input:
2 0 0 1000000 1000000 1000000 -1000000 -1000000 1000000 1000000 1000000 1000000 1 -1000000 -1000000 -1000000 -1000000 -999999 -999999
output:
Yes No
result:
ok 2 lines
Test #3:
score: 0
Accepted
time: 19ms
memory: 3720kb
input:
10000 10 -10 10 1 -2 -13 -8 6 -1 -7 -10 3 3 1 -3 -12 14 -9 -9 -2 4 4 -3 -11 7 -8 12 -3 1 8 -1 0 -11 1 19 13 -1 8 9 -3 2 11 -5 17 4 -2 -7 3 -3 5 -12 -14 10 1 0 3 6 -5 3 -11 2 2 16 4 9 6 5 -4 -8 -11 18 -1 0 0 8 4 -2 -10 -15 1 12 8 4 4 5 2 -17 3 8 7 -3 7 10 -4 0 1 0 10 20 -6 -10 5 -3 -1 -20 -20 15 7 5 ...
output:
No No No No No Yes No No No No No Yes No Yes No No Yes No Yes No No No No No Yes No No No Yes No No No Yes No No Yes No No No No No No No No No No No No Yes No No No No No No No No No Yes Yes No No Yes Yes Yes No No No No No No No No No No No No No No No No No No No No No No No No No No No No No Yes...
result:
ok 10000 lines
Test #4:
score: 0
Accepted
time: 16ms
memory: 3688kb
input:
10000 435040 443595 65698 -909008 707638 -786096 -552413 -684992 853567 662291 -64591 243223 870386 898512 -302221 -384430 747067 -262550 -626562 -285970 945616 -695143 223635 14005 -632139 169681 481076 -955128 470568 284454 -511490 -623372 -465039 -713986 477856 -675726 304873 -693785 286659 -9272...
output:
No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No Yes No No No No No No No No No No No No No No No No No No Yes No No No No No No Yes No No No No No No No No No No No No No No No No No No No No No No No No No No ...
result:
ok 10000 lines
Test #5:
score: 0
Accepted
time: 11ms
memory: 3816kb
input:
10000 2 -1000000 1 0 1 -6 999998 1 1000000 0 -1000000 1 0 1 -3 999998 -1 999999 4 -1000000 1 0 1 -1 999996 6 999999 1 -1000000 1 0 -1 0 999998 2 999999 2 -1000000 1 0 1 -1 999997 4 999999 1 -1000000 1 0 1 -2 999998 2 1000000 -4 -1000000 1 0 1 -5 999997 -4 999999 -3 -1000000 1 0 1 -3 999996 -2 100000...
output:
No No Yes No Yes Yes No No No No No No No No No No No No No No No No No Yes No Yes No No No No No No Yes No No No No Yes No No No No No No No No No No No No No Yes No No No No No No No No No No No No No Yes No No No Yes No No No No No No No No No No Yes Yes No No No No No No Yes Yes No No No No No N...
result:
ok 10000 lines
Test #6:
score: 0
Accepted
time: 13ms
memory: 3816kb
input:
10000 -1000000 -2 1 1 0 999998 -6 1000000 6 -1000000 -5 1 -1 0 999996 -2 1000000 3 -1000000 2 1 1 0 999998 0 999999 4 -1000000 -5 1 -1 0 999997 0 999998 5 -1000000 -3 1 -1 0 999997 -7 1000000 -2 -1000000 0 1 -1 0 999996 4 999997 6 -1000000 -2 1 1 0 999998 3 999999 6 -1000000 -3 1 -1 0 999996 -3 1000...
output:
Yes No No No No No No No No Yes No No No No No No No Yes No No No No No No No No No No No Yes Yes No No No No No No No No Yes No No No No No No No No No Yes No No No No Yes Yes No No No No No No No No No No No No No No No No No No No No No No No No Yes Yes No No No No No No Yes No No No No No Yes Ye...
result:
ok 10000 lines
Test #7:
score: 0
Accepted
time: 7ms
memory: 3816kb
input:
10000 -1000000 -1000000 39 2 0 19265 57834 60609 77684 -1000000 -1000000 22 -1 2 16667 94521 76708 97725 -1000000 -1000000 75 1 1 2120 9797 44577 47582 -1000000 -1000000 61 2 0 2400 15626 21867 21831 -1000000 -1000000 39 0 -1 32558 37142 66755 56056 -1000000 -1000000 64 1 2 33672 45285 53247 46521 -...
output:
No No Yes No No No Yes No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No Yes No No No No No No No No No No No No No No No No No No No No No No No No No No No Yes Yes No No No No No No No No Yes No No No No No No No No Yes No No No No No No No No No Yes N...
result:
ok 10000 lines
Extra Test:
score: 0
Extra Test Passed