QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#259396#5593. Food Processoranton_h#WA 36ms10104kbC++201.2kb2023-11-20 21:32:102023-11-20 21:32:10

Judging History

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

  • [2023-11-20 21:32:10]
  • 评测
  • 测评结果:WA
  • 用时:36ms
  • 内存:10104kb
  • [2023-11-20 21:32:10]
  • 提交

answer

#include <bits/stdc++.h>

using namespace std;
using ll=long long;
using vl = vector<ll>;
#define sz(c) = ll((c).size());
#define FOR(i,a,b) for(ll i=(a);i<(b);i++)

#define all(c) begin(c),end(c)
#define pb push_back
#define FORD(i,a,b) for(ll i=(b)-1;i>=(a);i--)
using vvl = vector<vl>;
using pll = pair<ll,ll>;
using vpll = vector<pll>;
#define xx first
#define yy second
#define TR(X) ({if(1) cerr << "TR: " << (#X) << " = " << (X) << endl;})

int main() { cin.sync_with_stdio(0); cin.tie(0);
    ll s,t; ll n; cin >> s >> t >> n;

    set<pll> blades;

    FOR(i,0,n){
        pll curr; cin >> curr.xx >> curr.yy;
        auto big = blades.upper_bound(curr);
        if(big != blades.end() && big->yy <= curr.yy) continue;

        auto from = big;
        for(;from != blades.begin() && prev(from)->yy > curr.yy;from--);
        blades.erase(from, big);
        blades.insert(curr);
    }

    if(prev(blades.end())->xx < s){
        cout << "-1\n";
        return 0;
    }

    double curr = t, res=0;
    auto blade = blades.upper_bound({t,0});
    for(;curr < s; blade++){
        res += log2(blade->xx/curr)*blade->yy;
        curr = blade->xx;
    }
    if(curr != s) res += log2(s/curr)*blade->yy;
    printf("%.16lf\n", res);
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

10 1 2
10 10
4 5

output:

23.2192809488736245

result:

ok found '23.21928', expected '23.21928', error '0.00000'

Test #2:

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

input:

10000 9999 1
10000 1

output:

0.0001442767180449

result:

ok found '0.00014', expected '0.00014', error '0.00000'

Test #3:

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

input:

10 1 2
8 10
4 5

output:

-1

result:

ok found '-1.00000', expected '-1.00000', error '-0.00000'

Test #4:

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

input:

8 2 1
8 10

output:

20.0000000000000000

result:

ok found '20.00000', expected '20.00000', error '0.00000'

Test #5:

score: 0
Accepted
time: 36ms
memory: 10104kb

input:

1000000 1 100000
10 10
20 20
30 30
40 40
50 50
60 60
70 70
80 80
90 90
100 100
110 110
120 120
130 130
140 140
150 150
160 160
170 170
180 180
190 190
200 200
210 210
220 220
230 230
240 240
250 250
260 260
270 270
280 280
290 290
300 300
310 310
320 320
330 330
340 340
350 350
360 360
370 370
380 3...

output:

1442798.0508796279318631

result:

ok found '1442798.05088', expected '1442798.05088', error '0.00000'

Test #6:

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

input:

1000000 1 100000
1000000 10
999990 20
999980 30
999970 40
999960 50
999950 60
999940 70
999930 80
999920 90
999910 100
999900 110
999890 120
999880 130
999870 140
999860 150
999850 160
999840 170
999830 180
999820 190
999810 200
999800 210
999790 220
999780 230
999770 240
999760 250
999750 260
99974...

output:

199.3156856932417327

result:

ok found '199.31569', expected '199.31569', error '0.00000'

Test #7:

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

input:

1000000 999999 1
1000000 1

output:

0.0000014426957622

result:

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

Test #8:

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

input:

1000000 1 1
1000000 999999

output:

19931548.6377556063234806

result:

ok found '19931548.63776', expected '19931548.63776', error '0.00000'

Test #9:

score: -100
Wrong Answer
time: 12ms
memory: 3680kb

input:

500000 12345 100000
4783 477451
939177 624790
942796 933658
388835 943838
591586 528454
934640 609727
702473 355566
440638 181750
957421 781586
785155 972417
184923 378838
791637 199851
268779 962854
866409 181893
288522 536245
889062 89973
535331 469534
740453 750376
26154 41835
470536 449187
72774...

output:

73.9943710192244737

result:

wrong answer 1st numbers differ - expected: '77.58570', found: '73.99437', error = '0.04629'