CSES - UKIEPC 2017 - Results
Submission details
Task:Flipping Coins
Sender:KnowYourArchitecture
Submission time:2017-10-31 19:07:43 +0200
Language:C++
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.04 sdetails
#2ACCEPTED0.06 sdetails
#3ACCEPTED0.04 sdetails
#4ACCEPTED0.04 sdetails
#5ACCEPTED0.05 sdetails
#6ACCEPTED0.04 sdetails
#7ACCEPTED0.04 sdetails
#8ACCEPTED0.03 sdetails
#9ACCEPTED0.03 sdetails
#10ACCEPTED0.04 sdetails
#11ACCEPTED0.04 sdetails
#12ACCEPTED0.05 sdetails
#13ACCEPTED0.04 sdetails
#14ACCEPTED0.04 sdetails
#15ACCEPTED0.04 sdetails
#16ACCEPTED0.05 sdetails
#17ACCEPTED0.05 sdetails

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