| 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 |
