QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#801985 | #9869. Horizon Scanning | ucup-team5657# | AC ✓ | 713ms | 27764kb | C++20 | 3.1kb | 2024-12-07 11:10:56 | 2024-12-07 11:10:59 |
Judging History
answer
#pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math")
#include <bits/stdc++.h>
using namespace std;
#define _rep(i_,a_,b_) for(int i_ = (a_); i_ <= (b_); ++i_)
#define mid ((L+R) / 2)
#define multiCase() int testCnt = in(); _rep(curCase,1,testCnt)
#ifdef ONLINE_JUDGE
#define debug(...) 0
#else
#define debug(...) fprintf(stderr, __VA_ARGS__), fflush(stderr)
#endif
using ll = long long;
using pii = pair<int,int>;
namespace FastIO {
char buf[1 << 23], *p1 = buf, *p2 = buf;
inline char gc(void) {
if(p1 == p2 && (p1 = buf, p2 = buf + fread(buf, 1, 1 << 23, stdin), p1 == p2)) return EOF;
return *p1++;
}
int in(void) {
int x = 0, c = gc(), f = 1; while(!isdigit(c)) { if(c == '-') f = -1; c = gc(); }
while(isdigit(c)) x = x * 10 + c - '0', c = gc();
return x * f;
}
ll inl(void) {
ll x = 0; int c = gc(), f = 1; while(!isdigit(c)) { if(c == '-') f = -1; c = gc(); }
while(isdigit(c)) x = x * 10 + c - '0', c = gc();
return x * f;
}
char obuf[1 << 23], *p3 = obuf;
inline void pc(char c) { *p3++ = c; if(p3 == obuf + (1 << 23)) fwrite(obuf, 1, 1 << 23, stdout), p3 = obuf; }
template<typename T> void out_(T x) { if(x > 9) out_(x / 10); pc(x % 10 + '0'); }
template<typename T> void out(T x) { if(x < 0) pc('-'), x = -x; out_(x); pc(' '); }
template<typename T> void outln(T x) { if(x < 0) pc('-'), x = -x; out_(x); pc('\n'); }
struct FLUSHer { ~FLUSHer() { fwrite(obuf, 1, p3 - obuf, stdout); } } flusher;
} using FastIO::in; using FastIO::inl; using FastIO::out; using FastIO::outln;
template<typename T> void chkmax(T &a, const T &b) { a = max(a, b); }
template<typename T> void chkmin(T &a, const T &b) { a = min(a, b); }
const int kN = 205000;
const double eps = 1e-8, pi = acos(-1);
int n, k;
double A[kN];
int tag[kN << 1];
int main() {
multiCase() {
n = in(), k = in();
_rep(i,1,n) {
int x = in(), y = in();
A[i] = atan2(y, x);
}
sort(A + 1, A + 1 + n);
double L = 0, R = pi, ans = 0;
while(R - L > eps) {
vector<double> a1, ra1, a2, ra2;
_rep(i,1,n) {
if(A[i] - mid >= -pi) a1.emplace_back(A[i] - mid);
else ra1.emplace_back(pi - (-pi - (A[i] - mid)));
if(A[i] + mid <= pi) a2.emplace_back(A[i] + mid);
else ra2.emplace_back(-pi + (A[i] + mid - pi));
}
a1.insert(a1.end(), ra1.begin(), ra1.end());
ra2.insert(ra2.end(), a2.begin(), a2.end());
vector<double> d(a1.size() + ra2.size());
merge(a1.begin(), a1.end(), ra2.begin(), ra2.end(), d.begin());
d.insert(d.begin(), -pi), d.emplace_back(pi);
d.erase(unique(d.begin(), d.end()), d.end());
auto locate = [&](double x) { return lower_bound(d.begin(), d.end(), x) - d.begin(); };
int mn = n, cur = 0;
_rep(i,1,n) {
if(A[i] - mid >= -pi) tag[locate(A[i] - mid)]++;
else tag[0]++, tag[locate(pi - (-pi - (A[i] - mid)))]++;
if(A[i] + mid <= pi) tag[locate(A[i] + mid)]--;
else tag[0]++, tag[locate(-pi + (A[i] + mid - pi))]--;
}
int m = d.size();
_rep(i,0,m - 2) {
cur += tag[i]; chkmin(mn, cur);
}
_rep(i,0,m) tag[i] = 0;
if(mn >= k) R = mid; else L = mid;
}
printf("%.10lf\n", L * 2);
}
return 0;
}
这程序好像有点Bug,我给组数据试试?
详细
Test #1:
score: 100
Accepted
time: 2ms
memory: 10420kb
input:
5 1 1 0 1 8 2 1 0 1 1 0 1 -1 1 -1 0 -1 -1 0 -1 1 -1 4 2 -1 1 0 1 0 2 1 1 4 2 -1000000000 0 -998244353 1 998244353 1 1000000000 0 3 1 0 1 0 2 0 -1
output:
6.2831852955 1.5707963151 5.4977871438 3.1415926536 3.1415926419
result:
ok 5 numbers
Test #2:
score: 0
Accepted
time: 227ms
memory: 10340kb
input:
10000 16 1 -10 -6 -5 -6 -4 9 -2 5 -2 10 1 -7 1 -5 1 6 3 1 4 -9 6 -10 6 -3 6 1 8 -5 8 -4 9 -4 17 4 -9 2 -8 -4 -8 -3 -8 -1 -6 -2 -6 -1 -6 8 -5 -8 -5 10 -4 8 -2 -8 4 -9 4 0 5 -3 8 -5 9 -2 10 10 10 6 -7 2 -4 6 -2 -7 -2 -1 -1 7 1 -9 1 8 3 -4 7 -4 9 -2 14 3 -9 10 -8 -10 -8 -8 -6 -7 -6 -5 -1 -7 -1 -2 0 -1 ...
output:
1.6929914865 2.5748634328 4.6527582627 2.7726331043 5.7427658020 4.8576989830 3.4198923022 2.8127999544 6.2831852955 6.2831852955 5.1172807587 6.1467826967 3.8420890204 2.3424967084 3.4633432045 6.2831852955 5.9614347446 3.3247034646 5.2627749251 5.6724593401 1.6738779351 1.1141908508 2.4087775474 6...
result:
ok 10000 numbers
Test #3:
score: 0
Accepted
time: 230ms
memory: 10328kb
input:
10000 19 7 -10 -6 -10 5 -3 0 -2 -5 -1 1 -1 6 0 3 0 7 1 9 3 -3 3 3 3 8 4 -1 5 8 6 -3 7 -5 7 4 8 10 9 -5 15 15 -9 -1 -8 6 -7 9 -6 -3 -4 -9 -1 -3 -1 8 1 -8 1 -7 3 -2 3 1 6 -9 7 -10 7 0 10 -9 10 3 -7 -1 -6 -2 -6 10 -5 2 -4 2 -3 -7 -2 -9 1 -3 3 4 7 7 15 4 -8 -8 -8 8 -7 0 -7 10 -6 -7 -5 6 -1 -3 -1 0 1 -2 ...
output:
3.9269908053 6.2831852955 3.3602615962 2.6779450411 3.7703889359 1.7625844657 3.8402524730 5.4977871321 2.0344439276 1.8157749850 4.3471875272 6.1412882456 5.1760365812 5.4655402512 5.7690391436 4.3662530129 5.9947557467 4.8922424697 4.1719694752 5.6776406331 5.9614347446 3.5067940951 4.5429759278 5...
result:
ok 10000 numbers
Test #4:
score: 0
Accepted
time: 226ms
memory: 10388kb
input:
10000 18 12 -10 -4 -10 7 -8 -10 -7 -4 -6 5 -6 7 -5 0 -2 -7 -1 2 -1 10 0 2 1 1 3 -2 5 3 5 5 6 -3 8 -3 9 -2 10 1 -10 -9 -7 -7 -5 2 -4 -7 -3 1 3 1 3 3 5 -4 9 2 9 6 11 2 -8 1 -8 6 -7 -2 -6 0 -5 0 -1 -9 2 -8 3 5 6 0 10 -2 10 6 20 9 -10 -6 -10 6 -9 -8 -7 5 -6 -4 -4 -8 -2 -10 -2 -3 -2 4 -1 1 2 -5 3 -2 5 -6...
output:
4.9097845311 1.9756881051 1.9868608318 3.9269908053 3.6977588803 6.2831852955 6.1412882456 6.1938713028 5.8053542475 6.2528915390 5.7288778057 3.0900918398 1.8925468777 5.6341897425 2.8966139837 6.2831852955 2.9147937954 6.1476575920 1.9513027002 5.5643552999 5.4977871438 3.0981417513 4.3906384178 3...
result:
ok 10000 numbers
Test #5:
score: 0
Accepted
time: 226ms
memory: 8340kb
input:
10000 19 7 -10 -1 -8 2 -7 -10 -6 6 -4 7 -3 -5 -3 1 -3 8 -2 4 -1 -7 0 -8 0 9 1 -10 2 1 2 3 3 5 6 -4 10 2 10 3 14 10 -8 2 -6 0 -5 -10 -5 10 -4 7 -3 -6 -2 -6 1 4 1 6 2 -1 3 -6 8 -4 9 -10 10 -1 12 8 -9 5 -7 2 -4 2 0 -2 0 5 1 6 3 2 4 9 5 5 7 -6 9 -9 9 2 19 12 -10 -10 -10 2 -9 -6 -8 2 -7 -5 -6 8 -4 1 -1 -...
output:
3.2393195604 5.2757052367 5.3003915814 5.3871299137 5.8883941824 4.1173193498 1.1383885458 1.5152978143 6.1476575920 6.1588303070 2.5748634328 5.9401613644 1.6085142755 4.6099451224 5.0711596447 4.2345579207 3.7905882065 4.0376480354 3.9160022424 1.0636978120 4.2809882488 5.8572556434 3.4078446920 5...
result:
ok 10000 numbers
Test #6:
score: 0
Accepted
time: 225ms
memory: 10232kb
input:
10000 11 10 -10 -1 -9 4 -9 10 -7 -7 -5 4 -4 -1 -2 -10 0 -7 0 5 3 3 3 5 12 12 -9 6 -9 8 -3 -2 -2 2 0 -4 1 0 2 -3 3 5 5 -2 7 -1 10 3 10 9 14 12 -10 0 -9 -3 -9 1 -9 10 -8 -1 -8 7 -6 -1 -1 -6 -1 2 1 -1 3 -7 4 9 9 -3 10 1 10 4 -9 -3 -7 -1 -6 -10 -3 -2 -3 7 2 -2 2 3 5 2 6 9 9 6 10 2 -9 -9 -9 6 -8 3 -5 -9 ...
output:
6.1378752928 6.2831852955 6.1180366257 3.2003484761 2.6537562056 6.2537820114 3.6052402544 3.5598169757 1.5091461501 5.9275494189 6.2587998906 2.6224465286 4.3938333021 5.4977871321 4.2487413679 5.4977871321 4.6292477413 3.5464844319 6.0048856469 1.1967518849 2.8854412687 6.2000440681 1.9237867092 5...
result:
ok 10000 numbers
Test #7:
score: 0
Accepted
time: 230ms
memory: 10552kb
input:
10000 14 1 -100 13 -96 -31 -82 -92 -77 -98 -50 1 -14 -57 -14 -31 -11 64 -8 75 9 68 25 100 54 -36 59 13 93 31 19 19 -76 -39 -60 95 -51 18 -39 11 -21 -46 -6 -94 -5 83 -3 -34 -3 72 0 -55 3 79 14 17 23 -88 32 37 50 70 61 -5 62 -43 84 -100 97 -50 13 7 -99 -63 -68 -87 -24 62 -20 -18 -2 -66 7 -49 13 -21 15...
output:
1.2713093878 6.2831852955 5.2225147174 6.0030656948 3.9258721294 5.5465289877 3.2103149156 3.0399300407 4.2275317709 3.0320196564 2.1912152263 3.0390080863 4.3313271428 6.2831852955 5.1100022614 2.9463140156 5.1760365812 5.6991835648 2.0611798556 6.2831852955 2.2278897750 6.1707748575 6.2831852955 6...
result:
ok 10000 numbers
Test #8:
score: 0
Accepted
time: 435ms
memory: 10608kb
input:
100 1413 755 -30 -30 -30 -28 -30 -27 -30 -26 -30 -21 -30 -12 -30 -10 -30 -8 -30 -5 -30 -1 -30 2 -30 4 -30 7 -30 9 -30 17 -30 19 -30 20 -30 23 -30 24 -30 30 -29 -29 -29 -23 -29 -15 -29 0 -29 4 -29 5 -29 9 -29 10 -29 11 -29 12 -29 14 -29 16 -29 17 -29 22 -29 27 -29 28 -28 -28 -28 -25 -28 -23 -28 -22 -...
output:
3.5891126241 2.9797552111 0.2837940997 2.0350277021 4.8879811415 1.0040671060 4.7457099708 5.3255963257 4.3102749558 5.6033836721 1.5798050817 4.3296454658 5.5472220949 1.4601390967 1.5310445475 2.8716749287 2.6325789567 3.1240505922 0.6805212152 5.4201656234 4.7789571365 2.4030351960 4.2799811994 4...
result:
ok 100 numbers
Test #9:
score: 0
Accepted
time: 488ms
memory: 10788kb
input:
20 9045 8319 -1000 -986 -1000 -683 -1000 -430 -1000 -292 -1000 53 -1000 667 -999 -855 -999 -350 -999 -174 -999 -51 -999 -43 -999 235 -999 465 -999 530 -998 -997 -998 -311 -998 21 -998 44 -998 182 -997 -313 -997 -195 -997 -13 -997 412 -997 425 -996 -542 -996 -348 -996 -126 -996 -59 -996 -40 -996 84 -...
output:
5.9115110032 3.7438685133 2.5384828487 2.1599673546 4.2950377044 4.7716744729 4.6824078085 5.0789843839 1.6008018182 3.3404025418 3.3687925269 2.1130160171 4.8553994045 4.3240010480 0.1078535535 0.1798211179 5.3766547531 4.4495660220 4.3944016633 2.9381848607
result:
ok 20 numbers
Test #10:
score: 0
Accepted
time: 600ms
memory: 25120kb
input:
1 166347 18723 -1000 -979 -1000 -975 -1000 -928 -1000 -914 -1000 -898 -1000 -889 -1000 -876 -1000 -873 -1000 -858 -1000 -840 -1000 -838 -1000 -801 -1000 -783 -1000 -744 -1000 -738 -1000 -733 -1000 -713 -1000 -712 -1000 -695 -1000 -689 -1000 -680 -1000 -675 -1000 -671 -1000 -646 -1000 -643 -1000 -608...
output:
0.8514491721
result:
ok found '0.8514492', expected '0.8514492', error '0.0000000'
Test #11:
score: 0
Accepted
time: 574ms
memory: 22844kb
input:
1 154903 84960 -1000 -979 -1000 -965 -1000 -956 -1000 -945 -1000 -920 -1000 -901 -1000 -878 -1000 -860 -1000 -858 -1000 -709 -1000 -693 -1000 -648 -1000 -619 -1000 -602 -1000 -579 -1000 -474 -1000 -473 -1000 -454 -1000 -443 -1000 -427 -1000 -407 -1000 -403 -1000 -384 -1000 -351 -1000 -279 -1000 -244...
output:
3.5389266811
result:
ok found '3.5389267', expected '3.5389267', error '0.0000000'
Test #12:
score: 0
Accepted
time: 568ms
memory: 23276kb
input:
1 158037 96343 -1000 -1000 -1000 -905 -1000 -881 -1000 -833 -1000 -804 -1000 -803 -1000 -782 -1000 -775 -1000 -765 -1000 -759 -1000 -756 -1000 -748 -1000 -722 -1000 -674 -1000 -669 -1000 -630 -1000 -610 -1000 -573 -1000 -443 -1000 -411 -1000 -409 -1000 -403 -1000 -388 -1000 -366 -1000 -349 -1000 -33...
output:
3.9720287747
result:
ok found '3.9720288', expected '3.9720288', error '0.0000000'
Test #13:
score: 0
Accepted
time: 229ms
memory: 12600kb
input:
10000 17 12 -853202371 684059854 -659446544 -924219854 -418025687 117998679 -399757126 -365708913 -331597239 -270896799 -204989763 869548983 -118492298 963842298 -77481232 672198731 45930201 -58234380 52605147 -900097542 78371985 940503934 235210685 595759114 391284089 234315077 416229789 -827244230...
output:
5.3985251092 5.3739078728 1.1735781624 1.5443652592 3.7782886467 3.5704715836 6.2829748576 5.0959251976 2.9875782416 2.3055665001 3.3907841531 5.7854732376 4.8109636073 0.9567574120 4.6294317296 4.7995080576 4.1702888983 5.7394776888 6.1210294401 3.5674682830 6.2280647191 6.2825675695 4.0146545561 0...
result:
ok 10000 numbers
Test #14:
score: 0
Accepted
time: 257ms
memory: 14604kb
input:
1000 133 108 -994106086 710243426 -991027749 -548437545 -983318226 -917527783 -943673956 -368162275 -935819096 616077188 -928022346 487569673 -924213856 -369318351 -914827619 426646545 -883935180 590882141 -870015071 -270471333 -834927107 -211343853 -829266515 354007200 -788041913 -60481736 -7822837...
output:
5.7428017898 1.9153642334 3.8043457924 1.7919162657 3.1695206609 6.0786462105 3.7860674503 3.6659690618 6.2265834501 5.9021521896 5.9443157006 0.7151676796 3.8315742440 1.2228457089 2.5984264553 5.5473289113 4.0791947333 0.7042209913 5.8578224247 0.6894854388 0.9379821458 1.4215226939 4.2713262717 3...
result:
ok 1000 numbers
Test #15:
score: 0
Accepted
time: 491ms
memory: 12516kb
input:
100 1367 924 -999416811 990355566 -997656126 346133696 -997071616 -657387469 -996176051 12622726 -995720693 334093112 -995478093 891631278 -994503890 341858449 -994297596 499383911 -993234202 533518057 -991636838 -4170504 -990563582 -407186200 -989454027 653116272 -989132124 -780605454 -988073521 -1...
output:
4.5051534799 2.7125589234 5.8396785773 6.0229771100 0.4616060342 0.9869912240 1.3219708377 1.9258417346 5.5086083488 4.6463553277 2.2876773995 2.1848725870 4.8094091808 0.4770789794 0.5563416013 1.0936191564 5.1827145447 3.1131846570 4.3802339454 2.7492592780 2.7917953298 6.2717333504 5.7538750380 2...
result:
ok 100 numbers
Test #16:
score: 0
Accepted
time: 539ms
memory: 13668kb
input:
10 13806 4955 -999669776 933068103 -999542354 721337508 -999499427 357140594 -999429088 -925180511 -999334813 -145726169 -999291694 -886327684 -999281647 811188099 -999145269 860687107 -998961821 -979442436 -998769313 446186367 -998591455 658309173 -998539751 -569480843 -998479467 279850955 -9984754...
output:
2.4170804619 6.1611922174 3.9600203707 3.9943617875 2.5515508267 0.5227238258 4.0978438257 6.2103826623 5.9817280282 0.7772236815
result:
ok 10 numbers
Test #17:
score: 0
Accepted
time: 432ms
memory: 20856kb
input:
1 112596 94970 -999980219 399324466 -999932413 952114487 -999894556 -951211102 -999891030 -996222974 -999864824 412806264 -999853190 -269700371 -999845814 -23906803 -999841507 -459154880 -999825178 716247149 -999761774 -154047106 -999729655 -171480333 -999709604 -666447277 -999704754 -22442485 -9996...
output:
5.4425938779
result:
ok found '5.4425939', expected '5.4425939', error '0.0000000'
Test #18:
score: 0
Accepted
time: 590ms
memory: 26628kb
input:
1 161568 13252 -999991243 -113889211 -999976572 -361096764 -999970140 -505012445 -999960654 600963873 -999959339 -269932510 -999956568 734634576 -999941447 716485764 -999940305 64397798 -999939982 746532931 -999939921 995002380 -999932747 185078659 -999927136 585216518 -999914684 898656539 -99990452...
output:
0.6424745898
result:
ok found '0.6424746', expected '0.6424746', error '0.0000000'
Test #19:
score: 0
Accepted
time: 713ms
memory: 27764kb
input:
1 186192 126483 -999998234 974001047 -999976292 -133179660 -999967957 112862981 -999957851 70030467 -999951528 743907713 -999931316 66002112 -999907988 888991267 -999905412 470798211 -999903986 -103943462 -999900422 255729004 -999898174 917068198 -999884392 -183592605 -999880179 -650076162 -99987469...
output:
4.4012456740
result:
ok found '4.4012457', expected '4.4012457', error '0.0000000'
Test #20:
score: 0
Accepted
time: 210ms
memory: 12316kb
input:
1000 133 9 -10 -839744900 -10 -620593257 -10 -322048342 -10 578093727 -10 898998949 -9 -833794004 -9 -704882916 -9 -570204575 -9 -506146571 -9 -109555290 -9 309734100 -9 396668416 -8 -928874025 -8 376566668 -8 596463598 -8 600491164 -8 894775141 -7 -281322833 -7 49984651 -7 154512939 -7 205573228 -7...
output:
3.1415925717 6.2831852370 3.1415926068 3.1415911673 6.2831852604 6.2831852838 3.1415926419 6.2831852955 3.1415926302 6.2831852487 6.2831852721 3.1415927589 3.1415926419 3.1415926185 3.1415926068 6.2831852721 3.1415926419 3.1415926536 3.1415926419 6.2831852955 6.2831852018 3.1415926536 3.1415926419 3...
result:
ok 1000 numbers
Test #21:
score: 0
Accepted
time: 387ms
memory: 14680kb
input:
5 23120 8224 -10 -999575056 -10 -997485895 -10 -995458183 -10 -986953157 -10 -985268102 -10 -983223383 -10 -980910524 -10 -980404283 -10 -973605147 -10 -972441960 -10 -972440422 -10 -969122114 -10 -965754004 -10 -964812113 -10 -964558462 -10 -963159275 -10 -962972564 -10 -962085557 -10 -961552443 -1...
output:
3.1415926419 3.1415926302 3.1415926068 3.1415926419 6.2831852721
result:
ok 5 numbers
Test #22:
score: 0
Accepted
time: 234ms
memory: 16196kb
input:
1 99995 60000 1 100001 1 100002 1 100003 1 100004 1 100005 1 100006 1 100007 1 100008 1 100009 1 100010 1 100011 1 100012 1 100013 1 100014 1 100015 1 100016 1 100017 1 100018 1 100019 1 100020 1 100021 1 100022 1 100023 1 100024 1 100025 1 100026 1 100027 1 100028 1 100029 1 100030 1 100031 1 10003...
output:
6.2831852955
result:
ok found '6.2831853', expected '6.2831853', error '0.0000000'
Extra Test:
score: 0
Extra Test Passed