QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#575638 | #3195. Within Arm's Reach | caijianhong | AC ✓ | 0ms | 4412kb | C++23 | 1.7kb | 2024-09-19 16:00:50 | 2024-09-19 16:00:56 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#ifdef LOCAL
#define debug(...) fprintf(stderr, ##__VA_ARGS__)
#else
#define endl "\n"
#define debug(...) void(0)
#endif
using LL = long long;
using point = complex<double>;
int n;
pair<double, int> b[30];
point tar, ans[30];
int main() {
#ifndef LOCAL
cin.tie(nullptr)->sync_with_stdio(false);
#endif
cin >> n;
int sum = 0;
for (int i = 1; i <= n; i++) cin >> b[i].first, sum += b[i].first, b[i].second = i;
{/*{{{*/
double tx, ty;
cin >> tx >> ty;
tar = point{tx, ty};
}/*}}}*/
if (sum > abs(tar)) {
sort(b + 1, b + n + 1);
double pre = 0;
for (int i = 1; i <= n; i++) {
pre += b[i].first;
int id = b[i].second;
if (sum - pre * 2 - abs(tar) <= 1e-4) {
double a = b[i].first, b = pre - a + abs(tar), c = sum - pre;
if (a + b + c > 2 * max({a, b, c})) {
double angc = acos((a * a + b * b - c * c) / (2 * a * b));
point tmp = ans[id] = polar(a, angc);
point all = (b - tmp) / c;
for (int j = i + 1; j <= n; j++) ans[::b[j].second] = all * ::b[j].first;
} else {
if (fabs(a + b + c - max({a, b, c})) <= 1e-4) ans[id] = -a;
else ans[id] = a;
for (int j = i + 1; j <= n; j++) ans[::b[j].second] = ::b[j].first;
}
break;
}
ans[b[i].second] = -b[i].first;
}
} else {
for (int i = 1; i <= n; i++) ans[b[i].second] = b[i].first;
}
point now = 0;
cout << fixed << setprecision(6);
for (int i = 1; i <= n; i++) {
now += ans[i] * polar(1., arg(tar));
cout << real(now) << " " << imag(now) << endl;
}
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 4308kb
input:
2 4 2 -8 -3
output:
-3.745317 -1.404494 -5.617975 -2.106741
result:
ok ACCEPTED
Test #2:
score: 0
Accepted
time: 0ms
memory: 4028kb
input:
1 10 10 0
output:
10.000000 0.000000
result:
ok ACCEPTED
Test #3:
score: 0
Accepted
time: 0ms
memory: 3996kb
input:
1 10 0 0
output:
-10.000000 0.000000
result:
ok ACCEPTED
Test #4:
score: 0
Accepted
time: 0ms
memory: 4344kb
input:
2 10 5 2 2
output:
7.071068 7.071068 3.535534 3.535534
result:
ok ACCEPTED
Test #5:
score: 0
Accepted
time: 0ms
memory: 4376kb
input:
3 100 20 20 80 90
output:
77.906765 62.693987 64.418647 77.461203 80.000000 90.000000
result:
ok ACCEPTED
Test #6:
score: 0
Accepted
time: 0ms
memory: 4360kb
input:
3 5 10 4 5 3
output:
-1.565244 4.748685 8.429972 5.057983 5.000000 3.000000
result:
ok ACCEPTED
Test #7:
score: 0
Accepted
time: 0ms
memory: 4320kb
input:
3 3 3 3 -1 -1
output:
2.121320 2.121320 1.997441 -0.876121 -1.000000 -1.000000
result:
ok ACCEPTED
Test #8:
score: 0
Accepted
time: 0ms
memory: 4328kb
input:
11 31 1 62 125 250 500 2 7 3 1000 15 -2 -3
output:
17.195706 25.793559 17.750406 26.625609 52.141818 78.212728 121.479343 182.219014 260.154392 390.231588 537.504490 806.256735 538.613891 807.920836 542.496792 813.745188 544.160892 816.241339 -10.539304 -15.808956 -2.218801 -3.328201
result:
ok ACCEPTED
Test #9:
score: 0
Accepted
time: 0ms
memory: 4344kb
input:
3 5 3 4 5 3
output:
4.666947 1.794327 2.094468 0.250840 5.000000 3.000000
result:
ok ACCEPTED
Test #10:
score: 0
Accepted
time: 0ms
memory: 4280kb
input:
20 3 9 15 5 7 13 4 17 8 999 16 6 10 14 2 12 1000 11 998 1 234 -123
output:
-2.655493 1.395836 -10.621971 5.583344 -23.899435 12.562524 -28.325256 14.888917 -34.521406 18.145867 -46.028542 24.194490 -49.569199 26.055605 -64.616991 33.965342 -71.698305 37.687571 882.494509 333.520416 868.331881 340.964874 863.020896 343.756546 854.169253 348.409333 841.776953 354.923234 840....
result:
ok ACCEPTED
Test #11:
score: 0
Accepted
time: 0ms
memory: 4236kb
input:
20 11 857 509 877 13 811 991 997 937 853 787 739 919 7 859 941 929 773 947 863 9871 -7919
output:
-8.580136 6.883405 629.624070 -565.081971 232.597788 -246.568028 885.695908 -831.881488 875.555747 -823.746554 1479.503952 -1365.011339 2217.497380 -2026.408874 2959.958982 -2691.810835 3657.738843 -3317.168545 4292.964266 -3886.464304 4879.039774 -4411.711388 5236.261245 -3764.784947 5920.636584 -4...
result:
ok ACCEPTED
Test #12:
score: 0
Accepted
time: 0ms
memory: 4152kb
input:
20 919 625 820 609 760 41 101 232 545 812 234 177 678 131 359 444 519 77 173 917 0 0
output:
907.330617 -145.986822 282.330617 -145.986822 1091.918327 -276.247098 482.918327 -276.247098 1233.267912 -396.976135 1192.267912 -396.976135 1091.267912 -396.976135 859.267912 -396.976135 314.267912 -396.976135 1115.957205 -525.965579 881.957205 -525.965579 704.957205 -525.965579 797.643988 145.6691...
result:
ok ACCEPTED
Test #13:
score: 0
Accepted
time: 0ms
memory: 4164kb
input:
20 919 625 820 609 760 41 101 232 545 812 234 177 678 131 359 444 519 77 173 917 0 -20000
output:
0.000000 -919.000000 0.000000 -1544.000000 0.000000 -2364.000000 0.000000 -2973.000000 0.000000 -3733.000000 0.000000 -3774.000000 0.000000 -3875.000000 0.000000 -4107.000000 0.000000 -4652.000000 0.000000 -5464.000000 0.000000 -5698.000000 0.000000 -5875.000000 0.000000 -6553.000000 0.000000 -6684....
result:
ok ACCEPTED
Test #14:
score: 0
Accepted
time: 0ms
memory: 4232kb
input:
20 408 663 148 685 731 606 538 289 850 577 732 34 656 200 325 901 105 575 754 910 -2498 1075
output:
374.770190 -161.280206 -207.677930 155.458153 -71.731881 96.954549 -673.507087 424.203079 -1315.693475 773.427424 -759.049517 533.878883 -264.867257 321.210376 0.594961 206.970230 -746.133398 613.045049 -216.127516 384.960052 -859.192409 734.662132 -827.961559 721.222114 -1351.495401 325.939537 -116...
result:
ok ACCEPTED
Test #15:
score: 0
Accepted
time: 0ms
memory: 4344kb
input:
20 440 377 296 985 425 377 777 533 710 620 975 854 312 130 13 900 745 416 550 507 -1080 -2184
output:
195.038398 394.410983 362.150844 732.349484 493.358493 997.680509 -5.256034 148.205051 183.133328 529.170204 350.245774 867.108706 -43.077564 197.014867 193.184859 674.789990 -166.222567 62.477731 -480.071304 -472.217481 -973.623755 -1313.068823 -1405.925081 -2049.568357 -1267.625126 -1769.895115 -1...
result:
ok ACCEPTED
Test #16:
score: 0
Accepted
time: 0ms
memory: 4352kb
input:
4 890 306 65 120 -10 14
output:
-517.301992 724.222789 -339.443105 475.220347 -301.662623 422.327672 -231.914039 324.679655
result:
ok ACCEPTED
Test #17:
score: 0
Accepted
time: 0ms
memory: 4328kb
input:
20 149 380 248 401 43 631 977 207 511 496 14 425 179 867 9 801 432 766 684 358 -3887 7982
output:
-65.234837 133.960502 -231.605563 475.604734 -340.184352 698.572549 -515.749249 1059.097121 -534.575411 1097.756863 -810.838379 1665.066102 -1238.586271 2543.451405 -1329.214534 2729.557606 -1552.939378 3188.979192 -1770.096957 3634.914822 -1776.226405 3647.501715 -1962.298927 4029.603817 -2040.6682...
result:
ok ACCEPTED
Test #18:
score: 0
Accepted
time: 0ms
memory: 4356kb
input:
20 121 803 712 959 971 452 892 694 465 489 201 20 757 995 643 853 797 755 203 452 2501 643
output:
-117.188936 -30.128943 677.475279 85.273767 -12.099289 -92.013897 936.945521 45.808269 1897.865761 185.355008 1460.102131 72.807221 2342.842454 201.000518 1670.700951 28.194846 1220.346774 -87.589934 746.748511 -209.350703 552.079286 -259.399608 532.709214 -264.379599 1281.850946 -155.587754 2266.52...
result:
ok ACCEPTED
Test #19:
score: 0
Accepted
time: 0ms
memory: 4320kb
input:
20 397 740 397 939 260 942 166 856 939 700 98 740 470 621 506 843 433 261 951 662 10019 -4091
output:
365.437477 -155.127207 1046.605570 -444.281196 1412.043047 -599.408403 2276.390127 -966.321369 2035.683294 -868.034948 2902.791867 -1236.120161 2749.109812 -1173.368061 3537.055606 -1507.848891 4401.402686 -1874.761857 5045.750882 -2148.285900 4955.022922 -2111.239480 5636.191015 -2400.393468 6068.8...
result:
ok ACCEPTED
Test #20:
score: 0
Accepted
time: 0ms
memory: 4412kb
input:
6 870 915 808 598 10 881 -4251 -946
output:
-849.226299 -188.983316 -1742.378095 -387.741632 -2531.084818 -563.257172 -3114.805883 -693.156049 -3124.567105 -695.328271 -3984.530748 -886.701032
result:
ok ACCEPTED
Test #21:
score: 0
Accepted
time: 0ms
memory: 4332kb
input:
1 500 -40 80
output:
-223.606798 447.213595
result:
ok ACCEPTED