QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#297949#958. Lockout vs touristHunsterWA 1ms3788kbC++23942b2024-01-05 14:31:332024-01-05 14:31:34

Judging History

This is the latest submission verdict.

  • [2024-01-05 14:31:34]
  • Judged
  • Verdict: WA
  • Time: 1ms
  • Memory: 3788kb
  • [2024-01-05 14:31:33]
  • Submitted

answer

#include <bits/stdc++.h>

int n;
int w[22];
double f[1 << 22];

int main() {
    scanf("%d", &n);
    for (int i = 0; i < n; i++) scanf("%d", &w[i]);
    for (int mask = 0; mask < 1 << n; mask++) {
        const int t = __builtin_popcount(mask);
        if (t <= 1) continue;
        std::vector<double> a, b;
        for (int i = 0; i < n; i++)
            if (mask >> i & 1) {
                a.push_back(w[i]);
                b.push_back(f[mask ^ (1 << i)]);
            }
        double max = 0;
        double sum1 = 0, sum0 = -1;
        for (int i = 0; i < t; i++) {
            if (a[i] <= b[i])
                max = std::max(max, a[i]);
            else {
                sum1 += 1 / (a[i] - b[i]);
                sum0 += a[i] / (a[i] - b[i]);
            }
        }
        max = std::max(max, sum0 / sum1);
        f[mask] = max;
    }
    printf("%.10lf\n", f[(1 << n) - 1]);
    return 0;
}

详细

Test #1:

score: 100
Accepted
time: 1ms
memory: 3728kb

input:

2
6 7

output:

3.2307692308

result:

ok found '3.2307692', expected '3.2307692', error '0.0000000'

Test #2:

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

input:

3
1 1 1

output:

0.8333333333

result:

ok found '0.8333333', expected '0.8333333', error '0.0000000'

Test #3:

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

input:

11
1 2 3 4 5 6 7 8 9 10 11

output:

9.4422713866

result:

ok found '9.4422714', expected '9.4422714', error '0.0000000'

Test #4:

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

input:

2
1 1000000000

output:

0.9999999990

result:

ok found '1.0000000', expected '1.0000000', error '0.0000000'

Test #5:

score: -100
Wrong Answer
time: 1ms
memory: 3788kb

input:

5
76 57 68 36 63

output:

62.8161435690

result:

wrong answer 1st numbers differ - expected: '63.3539651', found: '62.8161436', error = '0.0084892'