Task: | Flipping Coins |
Sender: | KnowYourArchitecture |
Submission time: | 2017-10-31 19:07:43 +0200 |
Language: | C++ |
Status: | READY |
Result: | ACCEPTED |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.04 s | details |
#2 | ACCEPTED | 0.06 s | details |
#3 | ACCEPTED | 0.04 s | details |
#4 | ACCEPTED | 0.04 s | details |
#5 | ACCEPTED | 0.05 s | details |
#6 | ACCEPTED | 0.04 s | details |
#7 | ACCEPTED | 0.04 s | details |
#8 | ACCEPTED | 0.03 s | details |
#9 | ACCEPTED | 0.03 s | details |
#10 | ACCEPTED | 0.04 s | details |
#11 | ACCEPTED | 0.04 s | details |
#12 | ACCEPTED | 0.05 s | details |
#13 | ACCEPTED | 0.04 s | details |
#14 | ACCEPTED | 0.04 s | details |
#15 | ACCEPTED | 0.04 s | details |
#16 | ACCEPTED | 0.05 s | details |
#17 | ACCEPTED | 0.05 s | details |
Code
#include <bits/stdc++.h> using namespace std; long double p[401][401]; int main() { int n, k; cin >> n >> k; p[0][0] = 1.0; for(int i=0;i<k;i++) { for(int j=0;j<=n;j++) { if(j == 0) { p[i+1][j+1] += 0.5*p[i][j]; p[i+1][j] += 0.5*p[i][j]; } else if (j == n) { p[i+1][j-1] += 0.5*p[i][j]; p[i+1][j] += 0.5*p[i][j]; } else { p[i+1][j] += 0.5*p[i][j]; p[i+1][j+1] += 0.5*p[i][j]; } } } long double r = 0.0; for(int i=0;i<=n;i++) { r += i * p[k][i]; } cout << setprecision(20) << fixed << r << endl; return 0; }
Test details
Test 1
Verdict: ACCEPTED
input |
---|
125 45 |
correct output |
---|
22.5 |
user output |
---|
22.50000000000000000000 |
Test 2
Verdict: ACCEPTED
input |
---|
261 260 |
correct output |
---|
129.9999999999999 |
user output |
---|
130.00000000000000001388 |
Test 3
Verdict: ACCEPTED
input |
---|
383 88 |
correct output |
---|
44 |
user output |
---|
44.00000000000000000000 |
Test 4
Verdict: ACCEPTED
input |
---|
57 99 |
correct output |
---|
49.32720561735655 |
user output |
---|
49.32720561735654963426 |
Test 5
Verdict: ACCEPTED
input |
---|
126 251 |
correct output |
---|
122.3492366782931 |
user output |
---|
122.34923667829314589128 |
Test 6
Verdict: ACCEPTED
input |
---|
326 393 |
correct output |
---|
196.4999999999999 |
user output |
---|
196.50000000000000001388 |
Test 7
Verdict: ACCEPTED
input |
---|
180 284 |
correct output |
---|
141.9999938858481 |
user output |
---|
141.99999388584821240211 |
Test 8
Verdict: ACCEPTED
input |
---|
127 70 |
correct output |
---|
35 |
user output |
---|
34.99999999999999999653 |
Test 9
Verdict: ACCEPTED
input |
---|
400 390 |
correct output |
---|
195 |
user output |
---|
194.99999999999999991673 |
Test 10
Verdict: ACCEPTED
input |
---|
384 400 |
correct output |
---|
199.9999999999998 |
user output |
---|
199.99999999999999998612 |
Test 11
Verdict: ACCEPTED
input |
---|
200 400 |
correct output |
---|
195.7630698036206 |
user output |
---|
195.76306980362070721269 |
Test 12
Verdict: ACCEPTED
input |
---|
55 100 |
correct output |
---|
49.50874091333049 |
user output |
---|
49.50874091333048928817 |
Test 13
Verdict: ACCEPTED
input |
---|
60 95 |
correct output |
---|
47.49024624299775 |
user output |
---|
47.49024624299775040534 |
Test 14
Verdict: ACCEPTED
input |
---|
1 400 |
correct output |
---|
0.5 |
user output |
---|
0.50000000000000000000 |
Test 15
Verdict: ACCEPTED
input |
---|
400 1 |
correct output |
---|
0.5 |
user output |
---|
0.50000000000000000000 |
Test 16
Verdict: ACCEPTED
input |
---|
400 400 |
correct output |
---|
200 |
user output |
---|
199.99999999999999998612 |
Test 17
Verdict: ACCEPTED
input |
---|
115 173 |
correct output |
---|
86.4999890805166119 |
user output |
---|
86.49998908051661190843 |