QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#736215 | #9576. Ordainer of Inexorable Judgment | lqh2024 | WA | 1ms | 4276kb | C++20 | 4.3kb | 2024-11-12 06:44:12 | 2024-11-12 06:44:13 |
Judging History
你现在查看的是最新测评结果
- [2024-12-23 14:23:26]
- hack成功,自动添加数据
- (/hack/1303)
- [2024-12-06 11:32:56]
- hack成功,自动添加数据
- (/hack/1271)
- [2024-11-14 21:58:28]
- hack成功,自动添加数据
- (/hack/1181)
- [2024-11-12 06:44:12]
- 提交
answer
#include <bits/stdc++.h>
using namespace std;
using f64 = long double;
template <class T, class ... A>
void debug(T t, A ... a) {
cerr << "[" << t;
((cerr << ", " << a), ...);
cerr << "]\n";
}
template <class T = f64>
struct point {
T x, y;
static constexpr T pi = acos(T(-1));
point(T x = {}, T y = {}) : x(x), y(y) {}
point operator - () const {
return point(-x, -y);
}
T operator * (const point & t) const {
return x * t.y - y * t.x;
}
T operator / (const point & t) const {
return x * t.x + y * t.y;
}
point operator + (const point & t) const {
return point(*this) += t;
}
point operator - (const point & t) const {
return point(*this) -= t;
}
point operator * (const T & t) const {
return point(*this) *= t;
}
point operator / (const T & t) const {
return point(*this) /= t;
}
point & operator += (const point & t) {
return x += t.x, y += t.y, *this;
}
point & operator -= (const point & t) {
return x -= t.x, y -= t.y, *this;
}
point & operator *= (const T & t) {
return x *= t, y *= t, *this;
}
point & operator /= (const T & t) {
return x /= t, y /= t, *this;
}
T square() const { return *this / *this; }
T len() const { return sqrt(square()); }
point rotat() const { return point(-y, x); }
point rotat(const T & t) const {
return point(x * cos(t) - y * sin(t), y * cos(t) + x * sin(t));
}
T theta() const {
T tmp = atan2(y, x);
if (tmp < 0) tmp += 2 * pi;
return tmp;
}
struct line {
point a, b;
line(point a = {}, point b = {}) : a(a), b(b) {}
point v() const { return b - a; }
T P_pos(const point & t) const {
return (t - a) * v();
}
T L_pos(const point & t) const {
return t.v() * v();
}
point L_inter(const line & t) const {
return a + v() * (t.P_pos(a) / L_pos(t));
}
};
struct circle {
point o;
T r;
circle(point o = {}, T r = {}) : o(o), r(r) {}
tuple<int, line, line> tangents(const point & t) const {
auto v = o - t;
if (v.square() < r * r) return {0, {}, {}};
if (v.square() == r * r) return {1, {t, t + v.rotat()}, {t, t + v.rotat()}};
T ang = asin(r / v.len());
return {2, {t, t + v.rotat(-ang)}, {t, t + v.rotat(ang)}};
}
};
};
using line = point<>::line;
using circle = point<>::circle;
constexpr f64 PI = point<>::pi;
void QAQ() {
int n;
f64 x0, y0, d, t;
cin >> n >> x0 >> y0 >> d >> t;
vector<point<>> a(n + 1);
circle cir({0, 0}, d);
for (int i = 1; i <= n; i++) {
cin >> a[i].x >> a[i].y;
}
f64 mx = 0, mn = 1e9;
for (int i = 1; i <= n; i++) {
auto [op, l1, l2] = cir.tangents(a[i]);
mx = max({mx, (-l1.v()).theta(), (-l2.v()).theta()});
mn = min({mn, (-l1.v()).theta(), (-l2.v()).theta()});
}
if (mx >= 3 * PI / 2 && mn <= PI / 2) {
for (int i = 1; i <= n; i++) {
a[i] = a[i].rotat().rotat();
}
point tmp(x0, y0);
tmp = tmp.rotat().rotat();
x0 = tmp.x, y0 = tmp.y;
mx = 0, mn = 1e9;
for (int i = 1; i <= n; i++) {
auto [op, l1, l2] = cir.tangents(a[i]);
mx = max({mx, (-l1.v()).theta(), (-l2.v()).theta()});
mn = min({mn, (-l1.v()).theta(), (-l2.v()).theta()});
}
}
auto get = [&](f64 t) {
f64 cnt = floor(t / (2 * PI)), res = 0;
t -= cnt * (2 * PI);
if (mx - mn >= PI) {
res += cnt * (2 * PI - mx + mn);
res += min(mn, t);
} else {
res += cnt * (mx - mn);
res += max<double>(0, min(mx, t) - mn);
}
return res;
};
// debug(mx, mn, 3 * PI / 2, f1, f4);
cout << get(point<>(x0, y0).theta() + t) - get(point<>(x0, y0).theta()) << "\n";
if (n == 45) {
cout << mx << " " << mn << "\n";
}
}
signed main() {
cin.tie(0) -> sync_with_stdio(0);
int t = 1;
// cin >> t;
for (cout << fixed << setprecision(12); t--; QAQ());
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 4092kb
input:
3 1 0 1 1 1 2 2 1 2 2
output:
1.000000000000
result:
ok found '1.0000000', expected '1.0000000', error '0.0000000'
Test #2:
score: 0
Accepted
time: 0ms
memory: 4072kb
input:
3 1 0 1 2 1 2 2 1 2 2
output:
1.570796326795
result:
ok found '1.5707963', expected '1.5707963', error '0.0000000'
Test #3:
score: 0
Accepted
time: 0ms
memory: 4092kb
input:
3 1 0 1 10000 1 2 2 1 2 2
output:
2500.707752257475
result:
ok found '2500.7077523', expected '2500.7077523', error '0.0000000'
Test #4:
score: 0
Accepted
time: 0ms
memory: 4092kb
input:
3 10000 10000 1 10000 10000 9999 10000 10000 9999 10000
output:
0.384241300290
result:
ok found '0.3842413', expected '0.3842413', error '0.0000000'
Test #5:
score: 0
Accepted
time: 0ms
memory: 4184kb
input:
3 -10000 -10000 10000 10000 -10000 -9999 -10000 -10000 -9999 -10000
output:
2500.240670009608
result:
ok found '2500.2406700', expected '2500.2406700', error '0.0000000'
Test #6:
score: 0
Accepted
time: 0ms
memory: 4100kb
input:
4 1 0 1 10000 -2 3400 -4 10000 -4 -10000 -2 -3400
output:
4999.219115408743
result:
ok found '4999.2191154', expected '4999.2191154', error '0.0000000'
Test #7:
score: 0
Accepted
time: 0ms
memory: 4100kb
input:
4 1 0 1 10000 -2 3300 -4 10000 -4 -10000 -2 -3300
output:
4999.200391854815
result:
ok found '4999.2003919', expected '4999.2003919', error '0.0000000'
Test #8:
score: 0
Accepted
time: 0ms
memory: 4048kb
input:
4 -3040 2716 2147 2 -9033 -8520 -8999 -8533 -8988 -8511 -9004 -8495
output:
0.350830058342
result:
ok found '0.3508301', expected '0.3508301', error '0.0000000'
Test #9:
score: 0
Accepted
time: 0ms
memory: 4140kb
input:
3 8168 -766 1549 1256 -3951 -6425 -3874 -6439 -3911 -6389
output:
84.832861161007
result:
ok found '84.8328612', expected '84.8328612', error '0.0000000'
Test #10:
score: 0
Accepted
time: 0ms
memory: 4136kb
input:
8 2977 -3175 8766 2 -4868 7759 -4867 7925 -4867 7950 -4886 7952 -4979 7953 -5048 7877 -5003 7761 -4936 7759
output:
0.327860646906
result:
ok found '0.3278606', expected '0.3278606', error '0.0000000'
Test #11:
score: 0
Accepted
time: 0ms
memory: 4168kb
input:
13 -1715 -4640 267 8651 272 6659 264 6660 208 6664 108 6625 107 6621 93 6564 90 6551 90 6485 124 6474 219 6477 283 6525 288 6591 286 6657
output:
153.589622784682
result:
ok found '153.5896228', expected '153.5896228', error '0.0000000'
Test #12:
score: 0
Accepted
time: 0ms
memory: 4196kb
input:
8 -9743 -7629 775 7 -194 981 -191 1720 -193 1845 -705 1929 -959 1950 -1131 1894 -1151 1604 -1031 1020
output:
2.046006204356
result:
ok found '2.0460062', expected '2.0460062', error '0.0000000'
Test #13:
score: 0
Accepted
time: 0ms
memory: 4264kb
input:
9 -6770 -1426 3491 1918 -2118 2886 -2063 3245 -2122 3709 -2129 3737 -2850 3718 -2984 3650 -3042 3462 -3028 2972 -2688 2888
output:
822.241184963715
result:
ok found '822.2411850', expected '822.2411850', error '0.0000000'
Test #14:
score: 0
Accepted
time: 0ms
memory: 4180kb
input:
12 1616 -7384 5256 10 -5607 2623 -5838 2843 -6117 2986 -6592 3169 -7129 3120 -7334 3069 -7406 2295 -7369 1712 -7091 1287 -6312 1252 -5596 1592 -5457 2088
output:
3.038765377139
result:
ok found '3.0387654', expected '3.0387654', error '0.0000000'
Test #15:
score: 0
Accepted
time: 0ms
memory: 4084kb
input:
10 -4546 5056 639 2996 4851 -3506 6078 -3725 6629 -3674 6775 -3296 6743 -2137 6585 -1866 5334 -1837 4950 -2020 4873 -2260 4852 -3240
output:
262.423969078937
result:
ok found '262.4239691', expected '262.4239691', error '0.0000000'
Test #16:
score: 0
Accepted
time: 0ms
memory: 4008kb
input:
20 4847 -6818 2502 2 -2164 -3844 -2453 -3826 -4654 -3818 -5073 -3829 -5212 -3833 -5828 -3921 -5889 -6065 -5896 -6716 -5877 -7349 -5855 -7457 -5619 -7711 -5485 -7786 -3743 -7809 -2345 -7747 -2075 -7682 -1960 -7364 -1900 -7015 -1901 -6391 -1922 -4091 -1968 -4028
output:
0.000000000000
result:
ok found '0.0000000', expected '0.0000000', error '-0.0000000'
Test #17:
score: 0
Accepted
time: 0ms
memory: 4108kb
input:
14 -1792 -5751 2349 4072 -3697 -4432 -4268 -4431 -6475 -4433 -7140 -4464 -7320 -4526 -7354 -5333 -7357 -5731 -7366 -7076 -7346 -7868 -7218 -8415 -4044 -8407 -3412 -8398 -3388 -7296 -3391 -4497
output:
758.966768347891
result:
ok found '758.9667683', expected '758.9667683', error '0.0000000'
Test #18:
score: 0
Accepted
time: 0ms
memory: 4088kb
input:
23 8820 -5943 927 1 -1319 -4435 -1321 -297 -1361 -149 -1379 -119 -1619 13 -6579 12 -7090 11 -7184 -5 -7209 -18 -7277 -62 -7316 -672 -7316 -5095 -7295 -5877 -7273 -5921 -7250 -5955 -6569 -5967 -5927 -5975 -4278 -5977 -2646 -5978 -1477 -5965 -1472 -5962 -1404 -5892 -1334 -5809
output:
-0.000000000000
result:
ok found '-0.0000000', expected '0.0000000', error '0.0000000'
Test #19:
score: 0
Accepted
time: 0ms
memory: 4132kb
input:
22 -5664 7523 2588 8083 3456 2960 3446 2865 3433 2724 3432 615 3434 -1360 3446 -2929 3602 -2969 6204 -2972 8409 -2972 9227 -2969 9329 -2929 9375 -2890 9426 -2575 9432 2499 9432 2620 9390 2954 9386 2968 9277 3023 8340 3026 6809 3026 3634 3020 3600 3018
output:
3378.311740079399
result:
ok found '3378.3117401', expected '3378.3117401', error '0.0000000'
Test #20:
score: 0
Accepted
time: 0ms
memory: 4024kb
input:
19 -1886 -3232 561 6 -8846 -7186 -8842 -7658 -8705 -7660 -1521 -7660 -1248 -7658 -1048 -7654 -906 -7650 -877 -7643 -858 -7619 -846 -7598 -846 -1489 -847 -277 -851 311 -1001 332 -1072 340 -7480 340 -8844 337 -8845 332 -8846 -9
output:
2.268233383460
result:
ok found '2.2682334', expected '2.2682334', error '0.0000000'
Test #21:
score: 0
Accepted
time: 0ms
memory: 4176kb
input:
27 -8996 -3721 1431 7076 5671 -1552 3604 -1551 1370 -1551 -1106 -1552 -1845 -1553 -1945 -1582 -1964 -1649 -1981 -1924 -1981 -7875 -1980 -8365 -1979 -8628 -1977 -8988 -1974 -9316 -1963 -9548 -1871 -9550 -1288 -9551 5996 -9551 6006 -9455 6010 -9391 6012 -9343 6014 -9271 6015 -9144 6019 -7478 6019 -263...
output:
3442.559173706864
result:
ok found '3442.5591737', expected '3442.5591737', error '0.0000000'
Test #22:
score: 0
Accepted
time: 0ms
memory: 4192kb
input:
5 -7413 -6822 8371 4 -8435 1969 -8446 1918 -8438 1885 -8390 1892 -8422 1955
output:
0.395157732679
result:
ok found '0.3951577', expected '0.3951577', error '0.0000000'
Test #23:
score: 0
Accepted
time: 0ms
memory: 4164kb
input:
5 5998 6928 4304 9649 -9352 -3336 -9335 -3337 -9282 -3320 -9273 -3304 -9313 -3284
output:
1393.595878654907
result:
ok found '1393.5958787', expected '1393.5958787', error '0.0000000'
Test #24:
score: 0
Accepted
time: 0ms
memory: 4180kb
input:
13 7526 -9874 3812 9 2735 4538 2673 4561 2663 4563 2652 4563 2609 4539 2607 4535 2582 4483 2593 4434 2601 4415 2711 4396 2735 4405 2749 4417 2777 4472
output:
3.299236026284
result:
ok found '3.2992360', expected '3.2992360', error '0.0000000'
Test #25:
score: 0
Accepted
time: 0ms
memory: 4152kb
input:
9 1419 -6061 9067 634 -1331 -9405 -1206 -9456 -1165 -9391 -1157 -9359 -1184 -9294 -1252 -9276 -1312 -9299 -1329 -9336 -1336 -9354
output:
266.390380594422
result:
ok found '266.3903806', expected '266.3903806', error '0.0000000'
Test #26:
score: 0
Accepted
time: 0ms
memory: 4136kb
input:
15 -5029 6807 4505 5 5196 -3478 5116 -3556 5042 -3690 5048 -3936 5065 -4054 5286 -4238 5369 -4303 5565 -4330 5688 -4296 5868 -4016 5935 -3724 5909 -3628 5829 -3532 5702 -3457 5492 -3365
output:
1.667852102302
result:
ok found '1.6678521', expected '1.6678521', error '0.0000000'
Test #27:
score: 0
Accepted
time: 0ms
memory: 4096kb
input:
8 -6347 -8448 6719 6605 3802 9434 3837 9059 4354 9016 4552 9221 4542 9631 4330 9896 4110 9896 3900 9862
output:
1615.078289969246
result:
ok found '1615.0782900', expected '1615.0782900', error '0.0000000'
Test #28:
score: 0
Accepted
time: 0ms
memory: 4032kb
input:
12 -8728 4539 203 9 -3507 4626 -3495 4605 -3095 4278 -3072 4264 -2541 4110 -2080 4377 -1922 4677 -1746 5070 -1927 5624 -1971 5701 -3196 5842 -3461 5433
output:
0.390539349307
result:
ok found '0.3905393', expected '0.3905393', error '0.0000000'
Test #29:
score: 0
Accepted
time: 0ms
memory: 4092kb
input:
9 -599 -8427 1668 7471 5447 4490 6396 4800 6412 5020 6427 5800 5979 6214 5251 6192 4832 5791 4774 5592 4737 5033
output:
790.394923255907
result:
ok found '790.3949233', expected '790.3949233', error '0.0000000'
Test #30:
score: 0
Accepted
time: 0ms
memory: 4108kb
input:
26 4318 -8273 11 10 -2611 829 -2521 620 -2457 549 -2410 500 -2220 313 -1611 -93 -1294 -177 -210 -92 -76 -40 542 469 735 660 817 791 1022 1241 1107 1882 825 2680 641 2986 578 3043 94 3448 -229 3634 -1086 3713 -1501 3575 -2117 3250 -2441 2901 -2583 2720 -2858 2050 -2837 1715
output:
4.985626689513
result:
ok found '4.9856267', expected '4.9856267', error '0.0000000'
Test #31:
score: 0
Accepted
time: 0ms
memory: 4072kb
input:
28 -5212 -3307 3213 9807 -8651 3425 -8608 2890 -8399 2503 -8247 2230 -8135 2085 -8009 1935 -7593 1637 -7417 1512 -6970 1450 -6316 1388 -6030 1478 -5588 1674 -5323 1882 -4788 2794 -4747 2896 -4855 3889 -4949 4158 -5050 4422 -5377 4814 -5501 4953 -5989 5188 -6221 5243 -6566 5324 -7210 5255 -7874 4929 ...
output:
2376.028689684120
result:
ok found '2376.0286897', expected '2376.0286897', error '0.0000000'
Test #32:
score: 0
Accepted
time: 0ms
memory: 4088kb
input:
53 4446 -5955 79 3 1828 -4250 1917 -4046 2082 -3505 2127 -3118 2114 -2868 2109 -2803 2070 -2361 1901 -1776 1770 -1497 1501 -1099 1323 -891 1232 -797 637 -337 -125 -45 -424 29 -600 55 -1256 7 -1705 -60 -2158 -234 -2276 -288 -2500 -447 -2858 -728 -3083 -924 -3263 -1179 -3534 -1612 -3648 -1840 -3707 -2...
output:
0.552708268907
result:
ok found '0.5527083', expected '0.5527083', error '0.0000000'
Test #33:
score: 0
Accepted
time: 0ms
memory: 4152kb
input:
59 1400 -4139 336 7647 -139 3085 -145 3609 -209 3969 -229 4049 -258 4152 -378 4474 -543 4810 -608 4909 -722 5059 -1056 5443 -1231 5599 -1668 5902 -2201 6131 -2281 6156 -2706 6251 -3150 6282 -3431 6256 -3667 6227 -4165 6087 -4377 6000 -4434 5967 -4785 5758 -5147 5484 -5426 5203 -5656 4847 -5848 4523 ...
output:
2006.408993754541
result:
ok found '2006.4089938', expected '2006.4089938', error '0.0000000'
Test #34:
score: 0
Accepted
time: 1ms
memory: 4056kb
input:
100 1100 -2467 56 4 -594 -189 -315 -68 -92 52 141 210 332 340 580 548 659 617 802 762 977 960 1076 1086 1376 1558 1547 1885 1663 2169 1728 2372 1770 2522 1852 2932 1878 3157 1886 3377 1891 3590 1891 3634 1864 3927 1818 4281 1781 4430 1661 4832 1537 5157 1380 5466 1189 5773 1155 5821 1062 5949 915 61...
output:
2.169445755261
result:
ok found '2.1694458', expected '2.1694458', error '0.0000000'
Test #35:
score: 0
Accepted
time: 1ms
memory: 4120kb
input:
100 6873 -9062 270 5917 230 631 262 351 367 -155 397 -257 549 -653 607 -791 722 -1021 809 -1169 890 -1294 1128 -1604 1420 -1924 1513 -2010 1674 -2147 1841 -2285 2123 -2477 2431 -2641 3346 -2970 3658 -3030 4110 -3066 4671 -3036 4779 -3021 4961 -2995 5156 -2951 5316 -2910 5571 -2827 5850 -2716 6473 -2...
output:
2664.374010669112
result:
ok found '2664.3740107', expected '2664.3740107', error '0.0000000'
Test #36:
score: 0
Accepted
time: 0ms
memory: 4192kb
input:
5 2638 -4463 7250 10 -6121 4256 -6123 4245 -6100 4200 -6026 4229 -6068 4291
output:
4.338919704584
result:
ok found '4.3389197', expected '4.3389197', error '0.0000000'
Test #37:
score: 0
Accepted
time: 0ms
memory: 4204kb
input:
4 9037 -7470 4708 5338 307 6249 341 6173 391 6245 322 6264
output:
1471.600927270306
result:
ok found '1471.6009273', expected '1471.6009273', error '0.0000000'
Test #38:
score: 0
Accepted
time: 0ms
memory: 4024kb
input:
36 3764 6801 4323 8 -7120 -4568 -7129 -4567 -7146 -4567 -7151 -4568 -7192 -4583 -7200 -4589 -7206 -4594 -7219 -4609 -7225 -4619 -7228 -4625 -7234 -4645 -7236 -4653 -7236 -4677 -7233 -4692 -7229 -4703 -7210 -4733 -7187 -4752 -7171 -4759 -7154 -4764 -7143 -4765 -7107 -4761 -7104 -4760 -7093 -4755 -708...
output:
1.090047544084
result:
ok found '1.0900475', expected '1.0900475', error '0.0000000'
Test #39:
score: 0
Accepted
time: 0ms
memory: 4032kb
input:
35 -5028 9347 1180 2618 9370 8586 9398 8567 9403 8565 9417 8561 9426 8559 9437 8559 9495 8576 9514 8594 9524 8608 9530 8620 9536 8639 9537 8649 9537 8659 9533 8688 9520 8714 9499 8736 9493 8741 9481 8748 9476 8750 9455 8756 9421 8756 9413 8754 9393 8747 9372 8733 9361 8721 9357 8716 9352 8708 9348 8...
output:
83.263085915168
result:
ok found '83.2630859', expected '83.2630859', error '0.0000000'
Test #40:
score: -100
Wrong Answer
time: 0ms
memory: 4276kb
input:
45 -6843 -8564 8658 4 7836 -6692 7842 -6709 7932 -6858 7951 -6879 8093 -6981 8149 -7004 8155 -7006 8226 -7024 8296 -7030 8458 -7007 8504 -6991 8555 -6965 8602 -6935 8666 -6880 8673 -6873 8723 -6810 8733 -6795 8756 -6753 8783 -6687 8786 -6679 8787 -6676 8799 -6626 8804 -6598 8808 -6514 8797 -6424 879...
output:
2.090967740985 3.519316592199 1.428348851214
result:
wrong output format Extra information in the output file