QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#137470 | #2350. Integer Cow | Rd_rainydays# | WA | 5ms | 3808kb | C++14 | 2.8kb | 2023-08-10 13:04:28 | 2023-08-10 13:04:31 |
Judging History
answer
#include <bits/stdc++.h>
#define sqr(x) ((x) * (x))
using ll = __int128;
struct Point {
double x, y;
Point(double x = 0, double y = 0) : x(x), y(y) { }
};
Point operator + (const Point& a, const Point& b) {
return Point(a.x + b.x, a.y + b.y);
}
Point operator - (const Point& a, const Point& b) {
return Point(a.x - b.x, a.y - b.y);
}
double dist(const Point& a, const Point& b) {
return sqrt(sqr(a.x - b.x) + sqr(a.y - b.y));
}
ll SQRT(ll x) {
// double t = sqrt(x);
// if (fabs(t - ceil(t)) < 1e-6) return (ll)ceil(t);
// if (fabs(t - floor(t)) < 1e-6) return (ll)floor(t);
// return (ll)floor(t);
ll lb = 0, ub = 1e18, ans = 0;
while (lb <= ub) {
ll mid = (lb + ub) / 2;
if (mid * mid <= x) ans = mid, ub = mid - 1;
else lb = mid + 1;
}
return ans;
}
ll read() {
long long x;
scanf("%lld", &x);
return x;
}
void solve() {
ll cx = read(), cy = read(), r = read(), px = read(), py = read();
Point c, p;
c.x = cx, c.y = cy;
p.x = px, p.y = py;
if (sqr(cx - px) + sqr(cy - py) <= sqr(r)) {
printf("0\n%lld %lld\n", (long long)px, (long long)py);
return;
}
Point d = p - c;
double ld = dist(p, c);
// assert(ld > 1e-6);
d.x /= ld, d.y /= ld;
d.x *= r, d.y *= r;
Point o = d + c;
ll r2 = sqr(r);
std::pair<ll, std::pair<ll, ll>> ans(ll(1e30), {-1e9 -1, -1e9-1});
for (int i = -30; i <= 30; i++)
for (int j = -30; j <= 30; j++) {
ll ox = (ll)o.x + i, oy = (ll)o.y + j;
if (sqr(ox - cx) + sqr(oy - cy) > sqr(r)) continue;
ans = std::min(ans, decltype(ans)(sqr(ox - px) + sqr(oy - py), {ox, oy}));
}
for (int i = -30; i <= 30; i++) {
ll ox = (ll)o.x + i;
if(r2 - sqr(ox-cx)<0) continue;
ll yyy = SQRT(r2 - sqr(ox-cx));
ll oy = (ll)c.y - yyy;
if(sqr(ox - cx) + sqr(oy - cy) <= sqr(r))
ans = std::min(ans, decltype(ans)(sqr(ox - px) + sqr(oy - py), {ox, oy}));
oy = (ll)c.y + yyy;
if (sqr(ox - cx) + sqr(oy - cy) <= sqr(r))
ans = std::min(ans, decltype(ans)(sqr(ox - px) + sqr(oy - py), {ox, oy}));
}
for (int j = -30; j <= 30; j++) {
ll oy = (ll)o.y + j;
if(r2 - sqr(oy-cy)<0) continue;
ll xxx = SQRT(r2 - sqr(oy-cy));
ll ox = (ll)c.x - xxx;
if (sqr(ox - cx) + sqr(oy - cy) <= sqr(r))
ans = std::min(ans, decltype(ans)(sqr(ox - px) + sqr(oy - py), {ox, oy}));
ox = (ll)c.x + xxx;
if (sqr(ox - cx) + sqr(oy - cy) <= sqr(r))
ans = std::min(ans, decltype(ans)(sqr(ox - px) + sqr(oy - py), {ox, oy}));
}
auto [ox, oy] = ans.second;
assert(ox != -(int)1e9-1 && oy != -(int)1e9-1);
printf("1\n%lld %lld %lld %lld\n", (long long)px, (long long)py, (long long)ox, (long long)oy);
}
signed main() {
int T;
scanf("%d", &T);
while (T--) solve();
return 0;
}
/*
1
0 0 500000000 1000000000 0
*/
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3748kb
input:
3 1 2 1 1 2 3 2 5 -10 3 0 0 1 10 0
output:
0 1 2 1 -10 3 -2 2 1 10 0 1 0
result:
ok correct (3 test cases)
Test #2:
score: 0
Accepted
time: 1ms
memory: 3688kb
input:
1 0 0 1 0 0
output:
0 0 0
result:
ok correct (1 test case)
Test #3:
score: 0
Accepted
time: 2ms
memory: 3704kb
input:
100 -1 0 2 -3 -2 0 -2 2 -2 0 2 -1 1 0 1 -1 -3 1 -1 0 -1 2 2 -1 -1 2 -2 2 0 -3 -2 -3 2 -3 -2 0 1 2 2 1 -1 0 1 -2 -2 2 -2 2 -1 -2 1 2 2 -2 2 -1 2 1 -1 2 -2 1 2 -3 -2 -1 1 1 -1 1 2 2 1 1 -3 2 0 1 -2 -1 -1 2 1 -2 0 2 -2 2 -2 -1 -2 -2 1 1 -2 -1 1 2 2 1 2 -3 1 0 -1 -3 -3 2 2 -1 2 1 1 -1 1 -3 -2 1 -2 -3 0 ...
output:
1 -3 -2 -2 -1 1 -2 0 -1 -1 1 0 1 1 -1 1 -1 0 -1 -2 1 -1 -1 -1 0 1 0 -3 0 -2 0 -3 -2 0 2 1 1 -2 -2 -1 -1 1 -1 -2 0 -2 1 -2 2 -1 2 0 -1 2 1 -3 -2 -2 -1 0 -1 1 1 1 -3 2 1 1 -2 -1 1 0 1 -2 0 -1 1 1 -2 -1 0 -2 1 1 -2 -1 -2 1 2 1 1 1 1 0 -1 1 -3 1 2 -1 -1 -3 1 -1 1 1 1 1 -2 -3 -3 -3 0 -2 -2 0 -2 -2 0 1 -1...
result:
ok correct (100 test cases)
Test #4:
score: 0
Accepted
time: 0ms
memory: 3712kb
input:
100 -5 9 1 -2 -7 3 1 6 9 2 -2 -1 2 -7 3 -10 -8 7 -8 6 0 3 9 -6 -7 6 4 9 -1 4 8 6 7 -7 7 3 -7 7 2 0 -5 -1 6 -7 -7 -5 8 7 -9 -6 -6 -5 5 -10 -9 -7 1 9 7 -2 -4 9 4 8 3 3 -9 6 2 -2 -1 -7 3 -8 2 -2 -5 4 -1 0 1 2 9 -5 5 0 9 5 -4 -1 -10 8 2 -3 -7 -8 -3 3 2 -3 3 3 7 -4 6 6 0 6 -3 5 -7 5 9 9 9 2 0 2 8 -10 2 1...
output:
1 -2 -7 -5 8 1 9 2 8 2 1 -7 3 -4 -1 1 -8 6 -10 -1 1 -6 -7 -4 -5 0 -1 4 1 -7 7 1 6 1 2 0 2 -1 1 -7 -7 -7 -6 1 -9 -6 -8 2 1 -10 -9 -10 -8 1 7 -2 2 1 1 8 3 -1 7 1 2 -2 3 -3 1 -8 2 -3 -5 1 -1 0 -2 -1 0 -5 5 1 -4 -1 -3 5 1 -3 -7 -10 6 1 2 -3 -5 -3 1 -4 6 -3 6 1 -3 5 1 3 1 9 9 1 9 1 8 -10 2 -2 1 7 -1 5 1 ...
result:
ok correct (100 test cases)
Test #5:
score: 0
Accepted
time: 4ms
memory: 3804kb
input:
100 -52 -13 72 44 58 79 -58 32 60 11 -50 21 75 95 65 -37 -61 21 -74 -40 0 -88 14 11 -49 10 -80 46 79 -17 75 -94 90 61 -34 -80 19 85 -7 -20 -72 42 56 67 -89 21 51 39 20 88 82 32 56 88 -82 3 51 31 -45 -53 50 12 91 9 46 -45 29 25 76 27 -19 -14 81 22 97 5 93 35 98 64 54 90 88 -100 63 -60 -18 81 -20 8 34...
output:
1 44 58 7 28 1 60 11 68 -28 1 95 65 22 42 1 -74 -40 -54 -49 1 11 -49 5 -75 1 79 -17 43 -48 0 61 -34 0 -7 -20 1 67 -89 -30 5 0 20 88 1 88 -82 82 -24 1 -45 -53 -10 23 0 9 46 1 76 27 -20 29 1 22 97 9 62 1 98 64 39 85 1 -100 63 -33 77 0 -20 8 1 62 16 46 51 1 -46 66 -79 -27 1 62 -91 -11 -54 1 -55 -54 73 ...
result:
ok correct (100 test cases)
Test #6:
score: 0
Accepted
time: 4ms
memory: 3696kb
input:
100 -14 48 115 -133 160 80 40 30 181 139 114 -109 102 -111 -14 -51 175 113 40 -116 -44 -171 69 6 -128 18 -23 159 94 170 -150 71 199 -167 -181 82 173 50 -138 41 -27 -126 119 195 134 -129 16 169 -103 51 183 136 117 -196 54 25 61 27 166 12 -156 63 199 -8 -56 -143 138 31 -137 125 48 16 44 -83 37 150 -16...
output:
1 -133 160 -99 125 1 181 139 102 60 1 -111 -14 19 -72 1 40 -116 -18 67 0 6 -128 1 94 170 76 125 1 -167 -181 -167 -127 1 -138 41 40 146 1 195 134 53 -38 0 -103 51 1 -196 54 69 110 1 166 12 50 51 0 -8 -56 0 -137 125 1 -83 37 5 25 1 -71 -195 9 -183 1 -77 -188 -51 120 1 -88 135 -100 -179 0 170 90 1 -25 ...
result:
ok correct (100 test cases)
Test #7:
score: 0
Accepted
time: 1ms
memory: 3712kb
input:
100 30 194 241 273 -11 476 -181 37 -18 -139 -162 496 295 113 250 -413 467 26 -100 312 -322 -120 423 -86 222 464 231 266 -421 497 249 -467 327 -183 -486 -316 486 468 -295 -286 92 141 487 -146 -13 108 -300 14 318 17 229 -180 49 -247 -464 -385 326 56 -493 62 -365 349 114 -258 293 44 -443 26 -139 -313 6...
output:
1 273 -11 217 42 1 -18 -139 439 -181 1 113 250 60 302 1 -100 312 -389 457 0 -86 222 1 -421 497 208 303 1 -183 -486 -77 -486 1 -295 -286 -316 18 0 -146 -13 1 318 17 115 -288 1 -247 -464 187 -205 1 -493 62 -408 275 1 -258 293 -264 297 1 -139 -313 23 -428 1 -458 -334 55 71 1 210 -353 304 215 0 -118 -26...
result:
ok correct (100 test cases)
Test #8:
score: 0
Accepted
time: 4ms
memory: 3692kb
input:
100 411 -186 278 885 -994 -930 792 129 -912 -596 879 -250 54 312 -682 -712 -577 304 -473 409 109 -353 664 -141 -316 117 691 571 -217 166 -596 974 792 -326 630 -15 497 654 -575 -991 -714 -567 262 847 -440 182 29 60 -584 -920 -68 -858 810 -351 -901 -429 -633 975 -244 814 881 -213 818 -870 425 173 639 ...
output:
1 885 -994 546 -429 1 -912 -596 -930 663 1 312 -682 838 -285 1 -473 409 -643 -281 0 -141 -316 1 -217 166 -189 209 0 -326 630 1 -575 -991 -248 -114 1 847 -440 -453 -545 1 -584 -920 146 -19 0 -351 -901 1 -244 814 -305 334 1 -870 425 111 63 0 -124 917 1 -109 987 80 -268 1 -421 899 421 376 1 153 -591 68...
result:
ok correct (100 test cases)
Test #9:
score: 0
Accepted
time: 2ms
memory: 3636kb
input:
100 190 562 152 560 564 -732 968 55 -887 965 -370 982 376 324 982 -263 -163 232 381 -165 -95 -654 238 258 -652 379 -43 668 -521 -36 884 782 580 267 786 -7 907 494 -802 908 970 -214 135 356 -209 410 40 139 173 42 -908 -832 24 -539 -835 806 -288 25 680 -296 -906 166 22 -873 165 -628 459 200 -122 454 -...
output:
1 560 564 342 562 1 -887 965 -787 968 1 324 982 6 982 1 381 -165 -31 -163 1 258 -652 143 -654 1 -521 -36 -289 -43 1 267 786 304 782 1 -802 908 -501 907 1 356 -209 835 -214 1 173 42 271 40 1 -539 -835 -884 -832 1 680 -296 781 -288 1 -873 165 -884 166 1 -122 454 -428 459 1 -717 -627 -764 -634 1 373 28...
result:
ok correct (100 test cases)
Test #10:
score: 0
Accepted
time: 2ms
memory: 3692kb
input:
100 885 -747 696 892 13 536 -416 299 532 74 639 295 250 636 20 532 406 91 524 208 -148 -392 337 -141 41 371 411 327 366 800 761 -461 50 758 -532 -712 -644 527 -720 -94 -724 -693 385 -731 -201 967 153 254 958 -328 -615 -291 390 -612 -950 -260 915 41 -258 136 -971 779 24 -974 -172 118 -106 509 109 -80...
output:
1 892 13 885 -51 1 532 74 536 -117 1 636 20 639 45 1 524 208 532 315 1 -141 41 -148 -55 1 366 800 371 738 1 758 -532 761 -511 1 -720 -94 -720 -118 1 -731 -201 -724 -308 1 958 -328 967 -101 1 -612 -950 -615 -681 1 -258 136 -260 874 1 -974 -172 -971 755 1 109 -805 118 -615 1 844 819 851 859 1 -230 629...
result:
ok correct (100 test cases)
Test #11:
score: 0
Accepted
time: 4ms
memory: 3632kb
input:
100 -870 761 1681 -508 -1766 1437 -353 988 -96 558 -823 1649 579 285 -1783 1482 -257 84 -1412 894 1076 -1999 662 -1646 -548 -1596 779 108 1010 -1803 -1139 1322 1656 1833 -1498 -1950 -1093 1605 1813 1793 212 -107 1488 -1888 -1678 -1489 434 1415 -317 -1851 108 -1460 1947 457 1813 1762 -1366 1524 135 6...
output:
1 -508 -1766 -632 -903 1 -96 558 585 147 1 285 -1783 -655 1095 1 -1412 894 1404 -226 1 -1646 -548 489 -1693 1 1010 -1803 -1513 710 1 1833 -1498 64 184 1 1813 1793 -679 -113 1 -1888 -1678 -981 -996 1 -317 -1851 -851 -829 1 457 1813 305 477 1 135 600 794 -189 1 906 15 -1171 -210 1 795 1521 481 -196 1 ...
result:
ok correct (100 test cases)
Test #12:
score: 0
Accepted
time: 5ms
memory: 3808kb
input:
100 519 -610 764 1776 -610 -161 1052 223 -1545 1052 -423 1331 808 -1876 1326 167 1457 91 -31 1449 -1442 -1344 720 355 -1341 1703 1535 583 498 1544 245 519 1257 -1498 518 -242 147 1251 -1860 147 1702 1916 1069 35 1918 -849 1473 346 -1818 1472 1189 -647 170 1472 -656 -42 -87 182 240 -96 991 -1971 378 ...
output:
1 1776 -610 1283 -610 1 -1545 1052 -384 1052 1 -1876 1326 -1231 1331 1 -31 1449 76 1457 1 355 -1341 -722 -1344 1 498 1544 1120 1535 1 -1498 518 -1012 519 1 -1860 147 -1493 147 1 35 1918 633 1916 1 -1818 1472 -1195 1473 1 1472 -656 1359 -647 1 240 -96 140 -87 1 168 -1972 613 -1971 1 -711 -1275 -50 -1...
result:
ok correct (100 test cases)
Test #13:
score: 0
Accepted
time: 5ms
memory: 3748kb
input:
100 1478 -111 204 1471 1077 -1137 303 132 -1135 145 1170 653 557 1174 -800 1508 -1843 129 1508 -597 1100 -19 804 1103 -864 -899 123 535 -906 738 -1027 -65 278 -1026 872 222 359 990 219 1424 -1996 -239 79 -1992 1034 1892 -887 978 1894 855 -599 -682 45 -601 -1452 -1198 969 128 -1198 1478 -1620 -955 14...
output:
1 1471 1077 1478 93 1 -1135 145 -1137 171 1 1174 -800 1170 96 1 1508 -597 1508 -1714 1 1103 -864 1100 -823 1 -906 738 -899 658 1 -1026 872 -1027 213 1 219 1424 222 1349 1 -1992 1034 -1996 -160 1 1894 855 1892 91 1 -601 -1452 -599 -727 1 -1198 1478 -1198 1097 1 -1619 -1718 -1620 -1102 1 965 268 960 -...
result:
ok correct (100 test cases)
Test #14:
score: 0
Accepted
time: 4ms
memory: 3640kb
input:
100 -3385 -1108 801 286 -1717 347 4287 3702 -2012 -239 -2842 1631 1554 -4783 2262 4930 1666 3142 3983 -2482 -4404 -1160 3440 -1249 4708 -632 -557 1489 930 -4322 -549 -2060 1450 -2537 2605 -1824 4416 4330 -3635 -3640 2979 -3339 1423 -2598 -1648 -4079 1254 2795 1612 2342 3409 -2881 4605 2283 800 -533 ...
output:
1 286 -1717 -2594 -1234 1 -2012 -239 -1356 1000 1 -4783 2262 -4320 2111 1 3983 -2482 4230 -1397 1 -1249 4708 -2781 1873 1 930 -4322 -68 -1935 1 -2537 2605 -1110 -723 1 -3635 -3640 -2785 194 1 -2598 -1648 1617 -2927 1 1612 2342 -1333 1775 0 2283 800 1 -1768 -2568 -1527 -3049 1 1332 -4940 -4795 4640 1...
result:
ok correct (100 test cases)
Test #15:
score: 0
Accepted
time: 5ms
memory: 3752kb
input:
100 4838 -3288 1574 2001 -3280 4302 -3171 20 4434 -3179 1645 -2971 11 1689 -2974 231 -2343 2645 3771 -2337 -3038 3521 1147 -935 3516 -1139 2837 852 -3546 2842 173 2057 166 354 2064 -2660 -645 1843 -4543 -640 -3695 -4513 629 -2291 -4510 -2258 -4067 1240 -856 -4065 316 884 355 -2716 884 -3417 2961 518...
output:
1 2001 -3280 3264 -3288 1 4434 -3179 4322 -3171 1 1689 -2974 1656 -2971 1 3771 -2337 2876 -2343 1 -935 3516 -1891 3521 1 -3546 2842 -1991 2837 1 354 2064 338 2064 1 -4543 -640 -4503 -645 1 -2291 -4510 -3066 -4513 1 -856 -4065 -1018 -4067 1 -2716 884 -39 884 1 -657 2970 -2899 2961 1 681 4364 343 4367...
result:
ok correct (100 test cases)
Test #16:
score: 0
Accepted
time: 5ms
memory: 3696kb
input:
100 -4633 -2041 1986 -4631 2439 -4880 4624 28 -4872 4697 -1457 -2643 1737 -1456 -4917 1015 -1805 2204 1011 -4481 -3984 4419 352 -3978 4015 4254 -1414 2569 4263 -4810 -1031 1275 464 -1030 2952 4119 -1206 4596 4125 3748 -4511 -3516 1360 -4520 -435 -927 -276 2080 -933 -4996 1842 3457 31 1834 2536 -804 ...
output:
1 -4631 2439 -4633 -55 1 -4872 4697 -4880 4652 1 -1456 -4917 -1457 -4380 1 1011 -4481 1015 -4009 1 -3978 4015 -3984 4067 1 4263 -4810 4254 -3983 1 -1030 2952 -1031 1739 1 4125 3748 4119 3390 1 -4520 -435 -4511 -2156 1 -933 -4996 -927 -2356 1 1834 2536 1842 3426 1 -807 -580 -804 -97 1 -2204 3891 -220...
result:
ok correct (100 test cases)
Test #17:
score: 0
Accepted
time: 5ms
memory: 3692kb
input:
100 723 6148 6508 -4871 -7883 -6934 -2184 5218 -9448 -7089 7488 -6851 4397 5228 -4063 5219 602 6560 7100 -7395 7897 8717 8573 9453 -8398 -3861 -4510 7092 4342 -7411 232 5977 1965 -2860 6405 -4347 -1385 8693 -6598 1817 -5110 -7662 9020 1753 6101 -5427 -8770 1024 7195 -3393 9548 -6485 8149 9903 3494 4...
output:
1 -4871 -7883 -1680 100 1 -9448 -7089 -9317 -6826 0 5228 -4063 1 7100 -7395 6724 -5783 1 9453 -8398 8670 179 1 4342 -7411 2825 -6875 1 -2860 6405 -1715 6242 0 -6598 1817 1 1753 6101 -1091 413 1 7195 -3393 -4484 -8371 1 9903 3494 9833 1659 1 -3355 184 -805 -1086 1 4063 -4038 -1676 -1645 1 2098 -2410 ...
result:
ok correct (100 test cases)
Test #18:
score: 0
Accepted
time: 5ms
memory: 3808kb
input:
100 -1464 6628 3138 7408 6628 -6975 -5584 1302 -2437 -5581 -5897 2476 7284 3064 2472 1418 -975 3900 -5406 -981 -8549 7283 4300 -713 7279 -3070 9286 340 -2641 9280 -7201 4879 7052 1670 4886 -2856 3073 1146 -1710 3077 -4047 -3956 1391 -7516 -3955 -3902 -8899 72 -9218 -8899 -5006 2417 730 -6214 2416 71...
output:
1 7408 6628 1674 6628 1 -2437 -5581 -5673 -5584 1 3064 2472 1387 2476 1 -5406 -981 -2482 -975 1 -713 7279 -4249 7283 1 -2641 9280 -2730 9286 1 1670 4886 -149 4879 1 -1710 3077 -1711 3077 1 -7516 -3955 -5438 -3956 1 -9218 -8899 -3974 -8899 1 -6214 2416 -5736 2417 1 4101 8236 4558 8239 1 -2570 -7877 -...
result:
ok correct (100 test cases)
Test #19:
score: 0
Accepted
time: 5ms
memory: 3700kb
input:
100 6753 7040 4532 6747 406 -5593 2983 6738 -5593 9927 -2963 -7689 1613 -2964 -5733 3073 5939 835 3072 7930 2791 -7545 394 2786 -6790 -8166 -4175 228 -8162 -2159 1503 5075 4028 1503 -2322 1778 6302 1746 1777 9559 -5140 2221 6576 -5143 -5415 9776 5564 5507 9776 -3820 7901 2938 94 7894 3488 134 -5331 ...
output:
1 6747 406 6753 2508 1 -5593 9927 -5593 9721 1 -2964 -5733 -2963 -6076 1 3072 7930 3073 6774 1 2786 -6790 2791 -7151 1 -8162 -2159 -8166 -3947 1 1503 -2322 1503 1047 1 1777 9559 1778 8048 1 -5143 -5415 -5140 -4355 1 9776 -3820 9776 57 1 7894 3488 7901 3032 1 129 -7372 134 -6979 1 -8814 -838 -8806 -5...
result:
ok correct (100 test cases)
Test #20:
score: -100
Wrong Answer
time: 5ms
memory: 3688kb
input:
100 56670 48188 56530 48597 30102 97368 93467 86660 62493 -82399 2358 -63596 96946 -26808 86426 39505 -66536 33793 5371 24961 -1027 59260 20263 8092 59406 32283 -77000 57934 -56616 27645 84702 -53430 49798 45528 9260 -14350 45366 79842 2785 -27688 6787 1067 21224 -3085 91654 24663 -69143 61834 21592...
output:
0 48597 30102 1 62493 -82399 80538 8457 1 -26808 86426 -16134 31570 1 5371 24961 27692 -34875 0 8092 59406 1 -56616 27645 -5211 -32835 1 45528 9260 58313 -11199 0 2785 -27688 1 -3085 91654 4487 22166 1 21592 11857 22331 -7353 1 -56485 82202 -61368 11288 1 66380 41626 -10083 -29890 1 -95534 51848 -13...
result:
wrong answer the distance of your solution has travelled is longer than expected. (test case 2)