QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#793958#8864. Ball PassingalexhamidiAC ✓0ms3972kbC++201.0kb2024-11-30 06:53:092024-11-30 06:53:09

Judging History

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

  • [2024-11-30 06:53:09]
  • 评测
  • 测评结果:AC
  • 用时:0ms
  • 内存:3972kb
  • [2024-11-30 06:53:09]
  • 提交

answer

#include <iostream>
#include <cmath>
#include <vector>
#include <iomanip>

using namespace std;

double sq(double x) {
    return x * x;
}

double getDistance(pair<double, double> a, pair<double, double> b) {
    auto [xa, ya] = a;
    auto [xb, yb] = b;
    return sqrt(sq(xa-xb) + sq(ya-yb));
}

int main() {
    int n;
    cin >> n;
    string s;
    cin >> s;

    vector<pair<int, int>> b;
    vector<pair<int, int>> g;
    for (int i = 0; i < n; i++) {
        int x, y;
        cin >> x >> y;
        if (s[i] == 'B') {
            b.push_back({x, y});
        } else {
            g.push_back({x, y});
        }
    }


    int bs = b.size();
    int gs = g.size();

    double ans;

    for (int i = 0; i < bs/2; i++) {
        int opp = i + bs/2;
        ans+=getDistance(b[i], b[opp]);
    }

    for (int i = 0; i < gs/2; i++) {
        int opp = i + gs/2;
        ans+=getDistance(g[i], g[opp]);
    }

    cout << fixed << setprecision(6) << ans << "\n";
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3972kb

input:

4
BBGG
-1 -10
-10 -2
-8 7
7 -8

output:

33.254798

result:

ok found '33.2547980', expected '33.2547980', error '0.0000000'

Test #2:

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

input:

10
GBGBBBGBBG
-30 2
-28 10
-5 30
6 29
15 26
22 20
29 9
27 -12
-14 -27
-22 -20

output:

269.695383

result:

ok found '269.6953830', expected '269.6953830', error '0.0000000'

Test #3:

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

input:

18
GBBBBGBGBGBBGGGGBB
-1820 -414
-1992 -92
-77 999
75 999
422 978
471 972
871 900
1343 741
1790 -446
556 -961
148 -997
28 -1000
23 -1000
-493 -969
-816 -913
-1002 -865
-1432 -698
-1671 -550

output:

21614.281392

result:

ok found '21614.2813920', expected '21614.2813916', error '0.0000000'

Test #4:

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

input:

40
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
9506 -2484
9872 -1278
9980 -501
9992 -323
7528 5266
7447 5339
7074 5655
5984 6410
5834 6498
5537 6662
5459 6703
3250 7566
2640 7716
896 7968
637 7984
-1592 7898
-1863 7860
-2419 7762
-3277 7558
-3941 7353
-7798 5008
-9393 2745
-9617 2192
-9752 1772
-9882 -...

output:

351971.753260

result:

ok found '351971.7532600', expected '351971.7532598', error '0.0000000'

Test #5:

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

input:

50
BBBGBGGGGGBGGGGGGGGBBGGGGBBBBBBGGGBGGBGBGGBBGBGBGG
1420 -4949
4182 -4542
4684 -4418
5875 -4046
6094 -3964
7896 -3068
8588 -2561
8764 -2408
8929 -2251
9377 -1737
9724 -1166
8443 2679
8109 2926
7842 3103
4660 4424
4561 4450
3837 4617
3542 4676
3281 4723
3208 4736
3008 4768
1136 4968
131 5000
-1002 ...

output:

331254.024145

result:

ok found '331254.0241450', expected '331254.0241450', error '0.0000000'