QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#641892 | #4687. Weather Report | Elegia | AC ✓ | 13ms | 4292kb | C++14 | 3.4kb | 2024-10-15 03:10:27 | 2024-10-15 03:10:28 |
Judging History
answer
/*
_/_/_/_/ _/_/_/_/_/ _/_/_/
_/ _/ _/ _/ _/
_/ _/ _/ _/ _/
_/ _/ _/ _/ _/
_/ _/ _/ _/ _/ _/
_/ _/ _/ _/ _/ _/_/
_/_/_/_/ _/_/ _/_/_/_/_/
_/_/_/_/ _/ _/ _/ _/
_/ _/ _/ _/ _/_/ _/_/
_/ _/ _/_/ _/ _/_/ _/
_/ _/ _/ _/ _/ _/
_/ _/ _/_/ _/ _/
_/ _/ _/ _/ _/ _/
_/_/_/_/ _/ _/ _/ _/
_/_/_/_/_/ _/_/_/_/_/ _/_/_/_/_/
_/ _/ _/
_/ _/ _/
_/ _/ _/_/_/_/
_/ _/ _/
_/ _/ _/
_/ _/_/_/_/_/ _/_/_/_/_/
_/_/_/_/_/ _/_/_/_/_/ _/_/_/_/_/
_/ _/ _/
_/ _/ _/
_/ _/ _/_/_/_/
_/ _/ _/
_/ _/ _/
_/ _/_/_/_/_/ _/_/_/_/_/
*/
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <ctime>
#include <cctype>
#include <algorithm>
#include <iomanip>
#include <tuple>
#include <random>
#include <bitset>
#include <queue>
#include <functional>
#include <set>
#include <map>
#include <vector>
#include <chrono>
#include <iostream>
#include <limits>
#include <numeric>
#define LOG(FMT...) fprintf(stderr, FMT)
#define fir first
#define sec second
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef vector<int> vi;
// mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
template<class T>
istream &operator>>(istream &is, vector<T> &v) {
for (T &x : v)
is >> x;
return is;
}
ostream &operator<<(ostream &os, const pair<char, int> &unit) {
return os << unit.first << "^" << unit.second;
}
template<class T>
ostream &operator<<(ostream &os, const vector<T> &v) {
if (!v.empty()) {
os << v.front();
for (int i = 1; i < v.size(); ++i)
os << ' ' << v[i];
}
return os;
}
using pir = pair<double, ll>;
const int N = 44;
int n;
ll C[N][N];
ll MC(int a, int b, int c, int d) {
return C[n][a] * C[n - a][b] * C[n - a - b][c];
}
int main() {
#ifdef ELEGIA
freopen("test.in", "r", stdin);
int nol_cl = clock();
#endif
ios::sync_with_stdio(false);
cin.tie(nullptr);
double a, b, c, d;
cin >> n >> a >> b >> c >> d;
double ans = 0;
for (int i = 0; i <= n; ++i) {
C[i][0] = 1;
for (int j = 1; j <= i; ++j) {
C[i][j] = C[i - 1][j - 1] + C[i - 1][j];
}
}
priority_queue<pir, vector<pir>, greater<pir>> pq;
for (int i = 0; i <= n; ++i) {
for (int j = 0; j <= n - i; ++j) {
for (int k = 0; k <= n - i - j; ++k) {
pq.emplace(pow(a, i) * pow(b, j) * pow(c, k) * pow(d, n - i - j - k), MC(i, j, k, n - i - j - k));
}
}
}
while (true) {
pir x = pq.top(); pq.pop();
if (x.second > 1) {
ans += x.second / 2 * 2 * x.first;
pq.emplace(x.first * 2, x.second / 2);
x.second %= 2;
if (x.second) pq.emplace(x);
} else {
if (pq.empty()) {
break;
}
pir y = pq.top(); pq.pop();
ans += x.first + y.first;
pq.emplace(x.first + y.first, 1);
--y.second;
if (y.second) pq.emplace(y);
}
}
cout << fixed << setprecision(10) << ans << '\n';
#ifdef ELEGIA
LOG("Time: %dms\n", int ((clock()
-nol_cl) / (double)CLOCKS_PER_SEC * 1000));
#endif
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 4128kb
input:
2 0.9 0.049999 0.05 0.000001
output:
1.4575099500
result:
ok found '1.45751', expected '1.45751', error '0.00000'
Test #2:
score: 0
Accepted
time: 7ms
memory: 4224kb
input:
20 0.25 0.25 0.25 0.25
output:
40.0000000000
result:
ok found '40.00000', expected '40.00000', error '0.00000'
Test #3:
score: 0
Accepted
time: 8ms
memory: 4204kb
input:
19 0.5 0.3 0.08615 0.11385
output:
32.0000551029
result:
ok found '32.00006', expected '32.00006', error '0.00000'
Test #4:
score: 0
Accepted
time: 7ms
memory: 4156kb
input:
19 0.255 0.265 0.235 0.245
output:
37.9943446614
result:
ok found '37.99434', expected '37.99435', error '0.00000'
Test #5:
score: 0
Accepted
time: 9ms
memory: 4236kb
input:
20 0.066667 0.133333 0.266667 0.533333
output:
32.8488848021
result:
ok found '32.84888', expected '32.84889', error '0.00000'
Test #6:
score: 0
Accepted
time: 9ms
memory: 4212kb
input:
20 0.27 0.26 0.24 0.23
output:
39.9700244231
result:
ok found '39.97002', expected '39.97002', error '0.00000'
Test #7:
score: 0
Accepted
time: 13ms
memory: 4292kb
input:
20 0.5 0.2 0.175 0.125
output:
35.6177332358
result:
ok found '35.61773', expected '35.61773', error '0.00000'
Test #8:
score: 0
Accepted
time: 0ms
memory: 4032kb
input:
2 0.9 0.05 0.049999 0.000001
output:
1.4575099500
result:
ok found '1.45751', expected '1.45751', error '0.00000'
Test #9:
score: 0
Accepted
time: 0ms
memory: 4112kb
input:
3 0.25 0.25 0.25 0.25
output:
6.0000000000
result:
ok found '6.00000', expected '6.00000', error '0.00000'
Test #10:
score: 0
Accepted
time: 1ms
memory: 4140kb
input:
9 0.25 0.25 0.25 0.25
output:
18.0000000000
result:
ok found '18.00000', expected '18.00000', error '0.00000'
Test #11:
score: 0
Accepted
time: 1ms
memory: 4064kb
input:
9 0.1 0.4 0.3 0.2
output:
16.6459855790
result:
ok found '16.64599', expected '16.64599', error '0.00000'
Test #12:
score: 0
Accepted
time: 6ms
memory: 4104kb
input:
20 0.56 0.1 0.01 0.33
output:
27.9269671936
result:
ok found '27.92697', expected '27.92697', error '0.00000'
Test #13:
score: 0
Accepted
time: 0ms
memory: 4048kb
input:
1 0.5 0.25 0.125 0.125
output:
1.7500000000
result:
ok found '1.75000', expected '1.75000', error '0.00000'
Test #14:
score: 0
Accepted
time: 0ms
memory: 4092kb
input:
2 0.5 0.25 0.125 0.125
output:
3.5000000000
result:
ok found '3.50000', expected '3.50000', error '0.00000'
Test #15:
score: 0
Accepted
time: 0ms
memory: 4172kb
input:
3 0.5 0.25 0.125 0.125
output:
5.2500000000
result:
ok found '5.25000', expected '5.25000', error '0.00000'
Test #16:
score: 0
Accepted
time: 1ms
memory: 4080kb
input:
11 0.5 0.25 0.125 0.125
output:
19.2500000000
result:
ok found '19.25000', expected '19.25000', error '0.00000'
Test #17:
score: 0
Accepted
time: 0ms
memory: 4088kb
input:
1 0.403 0.199 0.199 0.199
output:
1.9950000000
result:
ok found '1.99500', expected '1.99500', error '0.00000'
Test #18:
score: 0
Accepted
time: 0ms
memory: 4112kb
input:
1 0.199 0.403 0.199 0.199
output:
1.9950000000
result:
ok found '1.99500', expected '1.99500', error '0.00000'
Test #19:
score: 0
Accepted
time: 0ms
memory: 4072kb
input:
1 0.199 0.199 0.403 0.199
output:
1.9950000000
result:
ok found '1.99500', expected '1.99500', error '0.00000'
Test #20:
score: 0
Accepted
time: 0ms
memory: 4076kb
input:
1 0.199 0.199 0.199 0.403
output:
1.9950000000
result:
ok found '1.99500', expected '1.99500', error '0.00000'
Test #21:
score: 0
Accepted
time: 1ms
memory: 4036kb
input:
4 0.4 0.25 0.24 0.11
output:
7.5251345700
result:
ok found '7.52513', expected '7.52513', error '0.00000'
Test #22:
score: 0
Accepted
time: 0ms
memory: 4032kb
input:
4 0.25 0.4 0.24 0.11
output:
7.5251345700
result:
ok found '7.52513', expected '7.52513', error '0.00000'
Test #23:
score: 0
Accepted
time: 0ms
memory: 4048kb
input:
4 0.25 0.24 0.4 0.11
output:
7.5251345700
result:
ok found '7.52513', expected '7.52513', error '0.00000'
Test #24:
score: 0
Accepted
time: 0ms
memory: 4172kb
input:
4 0.25 0.24 0.11 0.4
output:
7.5251345700
result:
ok found '7.52513', expected '7.52513', error '0.00000'
Test #25:
score: 0
Accepted
time: 0ms
memory: 4056kb
input:
4 0.0001 0.0002 0.00034 0.99936
output:
1.0089885151
result:
ok found '1.00899', expected '1.00899', error '0.00000'
Test #26:
score: 0
Accepted
time: 0ms
memory: 4108kb
input:
4 0.99936 0.00034 0.0002 0.0001
output:
1.0089885151
result:
ok found '1.00899', expected '1.00899', error '0.00000'
Test #27:
score: 0
Accepted
time: 0ms
memory: 4168kb
input:
4 0.00034 0.99936 0.0002 0.0001
output:
1.0089885151
result:
ok found '1.00899', expected '1.00899', error '0.00000'
Test #28:
score: 0
Accepted
time: 13ms
memory: 4160kb
input:
20 0.000001 0.999997 0.000001 0.000001
output:
1.0003570084
result:
ok found '1.00036', expected '1.00036', error '0.00000'
Test #29:
score: 0
Accepted
time: 4ms
memory: 4084kb
input:
15 0.000001 0.000001 0.999997 0.000001
output:
1.0002520045
result:
ok found '1.00025', expected '1.00025', error '0.00000'
Test #30:
score: 0
Accepted
time: 8ms
memory: 4148kb
input:
18 0.01 0.345 0.345 0.3
output:
29.6750587434
result:
ok found '29.67506', expected '29.67506', error '0.00000'
Test #31:
score: 0
Accepted
time: 6ms
memory: 4240kb
input:
17 0.13 0.35 0.13 0.39
output:
31.0568361587
result:
ok found '31.05684', expected '31.05684', error '0.00000'
Test #32:
score: 0
Accepted
time: 12ms
memory: 4212kb
input:
20 0.14 0.33 0.14 0.39
output:
37.0670968886
result:
ok found '37.06710', expected '37.06710', error '0.00000'
Test #33:
score: 0
Accepted
time: 13ms
memory: 4168kb
input:
20 0.125001 0.25 0.5 0.124999
output:
35.0000000000
result:
ok found '35.00000', expected '35.00000', error '0.00000'
Test #34:
score: 0
Accepted
time: 12ms
memory: 4200kb
input:
20 0.01 0.34503 0.34503 0.29994
output:
32.9672035253
result:
ok found '32.96720', expected '32.96720', error '0.00000'
Test #35:
score: 0
Accepted
time: 13ms
memory: 4216kb
input:
20 0.4 0.2 0.3 0.1
output:
36.9592971671
result:
ok found '36.95930', expected '36.95930', error '0.00000'
Test #36:
score: 0
Accepted
time: 13ms
memory: 4220kb
input:
20 0.01 0.02 0.03 0.94
output:
8.3247096881
result:
ok found '8.32471', expected '8.32471', error '0.00000'
Test #37:
score: 0
Accepted
time: 13ms
memory: 4200kb
input:
20 0.991 0.003 0.003 0.003
output:
2.1213818217
result:
ok found '2.12138', expected '2.12138', error '0.00000'
Test #38:
score: 0
Accepted
time: 13ms
memory: 4156kb
input:
20 0.495 0.005 0.495 0.005
output:
21.6754013648
result:
ok found '21.67540', expected '21.67540', error '0.00000'
Test #39:
score: 0
Accepted
time: 9ms
memory: 4236kb
input:
20 0.492 0.008 0.493 0.007
output:
22.3229281448
result:
ok found '22.32293', expected '22.32293', error '0.00000'
Test #40:
score: 0
Accepted
time: 9ms
memory: 4184kb
input:
20 0.032 0.051 0.023 0.894
output:
12.9856549695
result:
ok found '12.98565', expected '12.98565', error '0.00000'
Test #41:
score: 0
Accepted
time: 9ms
memory: 4124kb
input:
20 0.002 0.01 0.09 0.898
output:
10.7619687926
result:
ok found '10.76197', expected '10.76197', error '0.00000'
Test #42:
score: 0
Accepted
time: 13ms
memory: 4244kb
input:
20 0.91 0.03 0.03 0.03
output:
11.6424469039
result:
ok found '11.64245', expected '11.64245', error '0.00000'