QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#259396 | #5593. Food Processor | anton_h# | WA | 36ms | 10104kb | C++20 | 1.2kb | 2023-11-20 21:32:10 | 2023-11-20 21:32:10 |
Judging History
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'