QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#575638#3195. Within Arm's ReachcaijianhongAC ✓0ms4412kbC++231.7kb2024-09-19 16:00:502024-09-19 16:00:56

Judging History

This is the latest submission verdict.

  • [2024-09-19 16:00:56]
  • Judged
  • Verdict: AC
  • Time: 0ms
  • Memory: 4412kb
  • [2024-09-19 16:00:50]
  • Submitted

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