QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#202111 | #2350. Integer Cow | 8BQube | TL | 1923ms | 3872kb | C++20 | 2.2kb | 2023-10-05 19:28:13 | 2023-10-05 19:28:13 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
#define X first
#define Y second
#define pb push_back
#define SZ(a) ((int)a.size())
#define ALL(v) v.begin(), v.end()
#define double __float128
typedef pair<double, double> pdd;
pll operator+(const pll &a, const pll &b) { return pll(a.X + b.X, a.Y + b.Y); }
pll operator-(const pll &a, const pll &b) { return pll(a.X - b.X, a.Y - b.Y); }
pll operator*(const pll &a, const ll &b) { return pll(a.X * b, a.Y * b); }
pdd operator/(const pdd &a, const double &b) { return pdd(a.X / b, a.Y / b); }
ll dis2(const pll &a, const pll &b) { return (a.X - b.X) * (a.X - b.X) + (a.Y - b.Y) * (a.Y - b.Y); }
int main() {
ios::sync_with_stdio(0), cin.tie(0);
int t;
cin >> t;
while (t--) {
pll c, a;
ll r;
cin >> c.X >> c.Y >> r >> a.X >> a.Y;
ll mi = dis2(a, c);
if (mi <= r * r) {
cout << "0\n";
cout << a.X << " " << a.Y << "\n";
continue;
}
pll best = c;
auto check = [&](pll p) {
if (dis2(p, c) > r * r) return;
ll d = dis2(p, a);
if (d < mi) mi = d, best = p;
};
auto spread = [&](pll p) {
for (int i = 0; i <= 2000; ++i) {
for (int j = 0; j <= 2000; ++j) {
check(pll(p.X + i, p.Y + j));
check(pll(p.X - i, p.Y + j));
check(pll(p.X + i, p.Y - j));
check(pll(p.X - i, p.Y - j));
}
}
};
if (r <= 100) spread(c);
else {
/*double lft = 0, rgt = 1;
for (int i = 0; i < 100; ++i) {
double mid = (lft + rgt) / 2;
pdd pt = a * mid + c * (1 - mid);
if (dis2(pt, c) <= r * r) lft = mid;
else rgt = mid;
}
pdd pt = a * rgt + c * (1 - rgt);*/
pdd pp = (a - c) * r / sqrtl(dis2(a, c));
pll pt;
pt.X = roundl(pp.X + c.X), pt.Y = roundl(pp.Y + c.Y);
spread(pt);
}
cout << "1\n";
cout << a.X << " " << a.Y << " " << best.X << " " << best.Y << "\n";
}
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 41ms
memory: 3632kb
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: 3872kb
input:
1 0 0 1 0 0
output:
0 0 0
result:
ok correct (1 test case)
Test #3:
score: 0
Accepted
time: 1648ms
memory: 3540kb
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 2 0 1 -1 0 -1 -2 1 -1 -1 -1 0 1 0 -3 1 -3 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 2 -2 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: 1923ms
memory: 3576kb
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 -3 0 1 -8 6 -10 -1 1 -6 -7 -4 -5 0 -1 4 1 -7 7 1 6 1 2 0 3 0 1 -7 -7 -7 -6 1 -9 -6 -5 1 1 -10 -9 -9 -9 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 0 2...
result:
ok correct (100 test cases)
Test #5:
score: 0
Accepted
time: 1705ms
memory: 3676kb
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: 1855ms
memory: 3636kb
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 -98 126 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: 1901ms
memory: 3580kb
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: 1711ms
memory: 3808kb
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: -100
Time Limit Exceeded
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 -...