QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#759820#9620. osu!mania1205691775#AC ✓0ms3840kbC++201.1kb2024-11-18 12:25:252024-11-18 12:25:26

Judging History

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

  • [2024-11-18 12:25:26]
  • 评测
  • 测评结果:AC
  • 用时:0ms
  • 内存:3840kb
  • [2024-11-18 12:25:25]
  • 提交

answer

#include <bits/stdc++.h>

using i64 = long long;

int sc1[] = {300,300,200,100, 50, 0};
int sc2[] = {320,300,200,100, 50, 0};

void solve(){
    int ppmax;
    std::array<int, 6> cnt;
    std::cin >> ppmax;
    for (auto &x  : cnt) std::cin >> x;

    i64 fz = 0;

    i64 fm = std::accumulate(cnt.begin(), cnt.end(), 0ll) * 300;
    for (int i = 0; i < 6; ++i) {
        fz += sc1[i] * cnt[i];
    }

    double ans = 1.0 * fz / fm;
    std::cout << std::fixed << std::setprecision(2) << ans * 100 << "% ";
    fz = 0;
    for (int i = 0; i < 6; ++i) {
        fz += sc2[i] * cnt[i];
    }
    fm = std::accumulate(cnt.begin(), cnt.end(), 0ll) * 320;
    fz -= 256 * std::accumulate(cnt.begin(), cnt.end(), 0ll);

    if (fz < 0) fz = 0;

    fz *= 5 * ppmax;

    i64 have = fz / fm;
    i64 rem = fz % fm;
    if (rem * 2 >= fm) have++;
    std::cout << have << "\n";
}

int main() {
    std::cin.tie(nullptr);
    std::ios::sync_with_stdio(false);


    int t;
    std::cin >> t;
    while(t--){
        solve();
    }

    return 0;
}

詳細信息

Test #1:

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

input:

18
1279
4624 4458 1109 220 103 314
753
3604 3204 391 33 9 29
807
5173 3986 763 84 29 96
718
576 461 60 5 2 7
947
4058 3268 764 169 42 158
568
2660 1731 161 16 6 15
641
4181 3126 656 56 10 43
630
3029 2336 377 41 10 61
529
1991 1354 181 11 9 5
1802
8321 2335 115 19 11 27
1645
3965 1087 41 6 1 13
1688...

output:

91.54% 543
97.40% 543
95.75% 523
97.12% 513
93.38% 499
98.16% 444
96.19% 430
96.20% 423
97.74% 400
99.19% 1604
99.38% 1482
99.14% 1465
98.53% 1251
100.00% 2688
100.00% 1792
100.00% 3000
52.78% 0
0.00% 0

result:

ok 18 lines