QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#58017#4838. Rotate Sum 2MIT01#AC ✓53ms6952kbC++1.0kb2022-10-24 09:51:052022-10-24 09:51:09

Judging History

你现在查看的是最新测评结果

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2022-10-24 09:51:09]
  • 评测
  • 测评结果:AC
  • 用时:53ms
  • 内存:6952kb
  • [2022-10-24 09:51:05]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
#define db long double
constexpr const long double PI = acosl(-1.0L);
long double x[100005], y[100005];
long double sx2, sx, sy2, sy;
long double ans1, ans2;
int n;

int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%Lf%Lf", x+i, y+i);
    sx2 += x[i]*x[i], sx += x[i];
    sy2 += y[i]*y[i], sy += y[i];
  }
  x[n] = x[0], y[n] = y[0];
  x[n+1] = x[1], y[n+1] = y[1];

  // area of polygon
  for (int i = 0; i < n; i++) {
    ans1 += x[i]*y[i+1]-x[i+1]*y[i];
  }
  ans1 /= 2;

  // sectors
  for (int i = 1; i <= n; i++) {
    long double dot = (x[i+1]-x[i])*(x[i-1]-x[i]) + (y[i+1]-y[i])*(y[i-1]-y[i]);
db cur = dot / hypotl(x[i+1]-x[i], y[i+1]-y[i]) / hypotl(x[i-1]-x[i], y[i-1]-y[i]);
if (cur > 1) cur = 1;
if (cur < -1) cur = -1;
    long double angle = acosl(cur);
    ans2 += (PI - angle) * (n*x[i]*x[i] + n*y[i]*y[i] - 2*sx*x[i] - 2*sy*y[i] + sx2 + sy2);
  }
  ans2 /= 2*n;

  printf("%.17Lf\n", ans1+ans2);
  return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 3ms
memory: 5852kb

input:

3
1 -1
1 1
-1 2

output:

18.76323450317391939

result:

ok found '18.76323', expected '18.76323', error '0.00000'

Test #2:

score: 0
Accepted
time: 1ms
memory: 3852kb

input:

4
-1000000000 1000000000
-1000000000 -1000000000
1000000000 -1000000000
1000000000 1000000000

output:

16566370614359172954.00000000000000000

result:

ok found '16566370614359173120.00000', expected '16566370614359173120.00000', error '0.00000'

Test #3:

score: 0
Accepted
time: 2ms
memory: 3828kb

input:

10
-54592357 -80406461
-54592497 -80409914
-54583785 -80448527
-54573150 -80452302
-54571418 -80445561
-54573057 -80436942
-54574710 -80428961
-54576431 -80421748
-54581146 -80413624
-54586843 -80406612

output:

3241469216.96216674242168665

result:

ok found '3241469216.96217', expected '3241469216.96217', error '0.00000'

Test #4:

score: 0
Accepted
time: 0ms
memory: 3904kb

input:

100
19218707 41938436
19227173 41936741
19236439 41934895
19244714 41933329
19263050 41933508
19269952 41935468
19276958 41938057
19283547 41941029
19290649 41944891
19298015 41949938
19301176 41952107
19308530 41957785
19315067 41963572
19323587 41972122
19331125 41980143
19339499 41989094
19341411...

output:

168840266155.04310244321823120

result:

ok found '168840266155.04309', expected '168840266155.04294', error '0.00000'

Test #5:

score: 0
Accepted
time: 3ms
memory: 5912kb

input:

1000
-40710097 -68387840
-40713262 -68382547
-40715876 -68378183
-40720034 -68371279
-40724775 -68363579
-40730740 -68353973
-40736549 -68344830
-40739819 -68339713
-40742687 -68335270
-40746895 -68328767
-40752947 -68319823
-40754886 -68316968
-40761079 -68308110
-40767747 -68298732
-40770472 -6829...

output:

14911692181599.08914279937744141

result:

ok found '14911692181599.08984', expected '14911692181599.02734', error '0.00000'

Test #6:

score: 0
Accepted
time: 4ms
memory: 6020kb

input:

10000
84849929 -57126112
84841472 -57123352
84836897 -57121859
84827816 -57118905
84819535 -57116213
84810908 -57113420
84809250 -57112891
84802608 -57110788
84797710 -57109239
84789766 -57106738
84783187 -57104673
84773775 -57101720
84766522 -57099445
84757149 -57096507
84751370 -57094702
84745393 ...

output:

1412486655950950.19848632812500000

result:

ok found '1412486655950950.25000', expected '1412486655950472.75000', error '0.00000'

Test #7:

score: 0
Accepted
time: 8ms
memory: 5960kb

input:

20000
36695920 63855096
36699821 63853995
36702135 63853342
36706473 63852120
36712051 63850550
36717151 63849119
36721923 63847781
36730794 63845294
36739373 63842890
36745062 63841296
36751484 63839501
36760104 63837093
36769910 63834359
36779620 63831652
36788710 63829118
36797797 63826588
368057...

output:

5727102515433583.07812500000000000

result:

ok found '5727102515433583.00000', expected '5727102515430790.00000', error '0.00000'

Test #8:

score: 0
Accepted
time: 18ms
memory: 6500kb

input:

50000
63220612 55859143
63226689 55860975
63228549 55861536
63237384 55864204
63246036 55866818
63253128 55868961
63262941 55871927
63272384 55874783
63278109 55876515
63285718 55878817
63289955 55880101
63297340 55882339
63305978 55884958
63313100 55887118
63321418 55889645
63330759 55892485
633335...

output:

35262276012521224.04687500000000000

result:

ok found '35262276012521224.00000', expected '35262276012467580.00000', error '0.00000'

Test #9:

score: 0
Accepted
time: 53ms
memory: 6800kb

input:

100000
6150629 209064536
6145207 209063168
6135217 209060644
6125551 209058201
6115985 209055782
6108484 209053885
6099150 209051524
6093683 209050141
6084620 209047848
6081814 209047138
6072408 209044758
6064213 209042684
6055932 209040588
6047114 209038356
6037530 209035930
6028054 209033531
60199...

output:

141307819506050761.77343750000000000

result:

ok found '141307819506050768.00000', expected '141307819505619632.00000', error '0.00000'

Test #10:

score: 0
Accepted
time: 49ms
memory: 6952kb

input:

99989
-135597084 24675451
-135596066 24669344
-135594745 24661432
-135593849 24656066
-135593366 24653174
-135591982 24644890
-135590618 24636739
-135590005 24633076
-135588796 24625860
-135587482 24618020
-135586605 24612788
-135585381 24605487
-135583879 24596531
-135583397 24593658
-135582102 245...

output:

141081441398852238.67187500000000000

result:

ok found '141081441398852240.00000', expected '141081441398487584.00000', error '0.00000'

Test #11:

score: 0
Accepted
time: 9ms
memory: 5904kb

input:

12432
-53030605 62756639
-53020643 62747841
-53011057 62739377
-53003690 62732873
-52999478 62729161
-52992709 62723198
-52986581 62717802
-52979396 62711476
-52974388 62707069
-52973366 62706172
-52970127 62703330
-52965879 62699603
-52955918 62690870
-52948653 62684509
-52940428 62677331
-52931644...

output:

2216015628957703.33337402343750000

result:

ok found '2216015628957703.25000', expected '2216015628957463.75000', error '0.00000'

Test #12:

score: 0
Accepted
time: 43ms
memory: 6868kb

input:

95846
96281192 -1877350
96286947 -1871034
96291470 -1866068
96300515 -1856135
96306553 -1849500
96315540 -1839624
96320958 -1833670
96328658 -1825206
96336295 -1816811
96341317 -1811290
96348753 -1803115
96355968 -1795181
96360393 -1790315
96366306 -1783812
96372117 -1777421
96375231 -1773996
963804...

output:

129057360308325128.65625000000000000

result:

ok found '129057360308325136.00000', expected '129057360307918736.00000', error '0.00000'

Test #13:

score: 0
Accepted
time: 37ms
memory: 6164kb

input:

77877
134743677 56655124
134749156 56665110
134753149 56672389
134758418 56681995
134761944 56688425
134766712 56697123
134770923 56704806
134775444 56713057
134779077 56719688
134782792 56726469
134788085 56736131
134789440 56738605
134793460 56745946
134798926 56755928
134803171 56763683
134807060...

output:

85342605030269909.25781250000000000

result:

ok found '85342605030269904.00000', expected '85342605030159280.00000', error '0.00000'

Test #14:

score: 0
Accepted
time: 25ms
memory: 5296kb

input:

44722
-1000000000 -1000000000
-999999999 -999999999
-999999998 -999999996
-999999997 -999999991
-999999996 -999999984
-999999995 -999999975
-999999994 -999999964
-999999993 -999999951
-999999992 -999999936
-999999991 -999999919
-999999990 -999999900
-999999989 -999999879
-999999988 -999999856
-99999...

output:

4607558025908671599.00000000000000000

result:

ok found '4607558025908671488.00000', expected '4607558515691559936.00000', error '0.00000'

Test #15:

score: 0
Accepted
time: 5ms
memory: 5888kb

input:

30000
-999999999 -999999999
-999999997 -999999991
-999999995 -999999975
-999999993 -999999951
-999999990 -999999900
-999999989 -999999879
-999999987 -999999831
-999999984 -999999744
-999999983 -999999711
-999999982 -999999676
-999999980 -999999600
-999999979 -999999559
-999999977 -999999471
-9999999...

output:

4605025509301900290.00000000000000000

result:

ok found '4605025509301900288.00000', expected '4605025704221045760.00000', error '0.00000'

Test #16:

score: 0
Accepted
time: 14ms
memory: 6248kb

input:

23333
-1000000000 -1000000000
-999999996 -999999984
-999999994 -999999964
-999999993 -999999951
-999999992 -999999936
-999999991 -999999919
-999999986 -999999804
-999999985 -999999775
-999999983 -999999711
-999999979 -999999559
-999999977 -999999471
-999999976 -999999424
-999999975 -999999375
-99999...

output:

4608776722261361540.75000000000000000

result:

ok found '4608776722261361664.00000', expected '4608776827538008064.00000', error '0.00000'

Test #17:

score: 0
Accepted
time: 2ms
memory: 5864kb

input:

10
-999998304 -997123584
-999995033 -975328911
-999991449 -926880399
-999989625 -892359375
-999986588 -820118256
-999985688 -795166656
-999983492 -727485936
-999982787 -703712631
-999975967 -422414911
-999964606 252735236

output:

1962446719359847491.25000000000000000

result:

ok found '1962446719359847424.00000', expected '1962446719359846912.00000', error '0.00000'

Test #18:

score: 0
Accepted
time: 2ms
memory: 5936kb

input:

4
0 -1000000000
1 -1
2 999999999
1 0

output:

4712388975343028631.00000000000000000

result:

ok found '4712388975343028224.00000', expected '4712388975672300544.00000', error '0.00000'