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

Code

#include <iostream>
#include <iomanip>

const int N = 400;
const int K = 400;
long double dp[N+1][K+1];

int main() {
	int n, k;
	std::cin >> n >> k;
	for (int i = 0; i <= n; ++i) {
		dp[i][0] = n-i;
	}
	for (int s = 1; s <= k; ++s) {
		dp[0][s] = (dp[0][s-1] + dp[1][s-1]) / 2;
		for (int i = 1; i <= n; ++i) {
			dp[i][s] = (dp[i][s-1] + dp[i-1][s-1]) / 2;
		}
	}
	std::cout << std::fixed << std::setprecision(15) << dp[n][k] << '\n';
}

Test details

Test 1

Verdict: ACCEPTED

input
125 45

correct output
22.5

user output
22.500000000000000

Test 2

Verdict: ACCEPTED

input
261 260

correct output
129.9999999999999

user output
130.000000000000000

Test 3

Verdict: ACCEPTED

input
383 88

correct output
44

user output
44.000000000000000

Test 4

Verdict: ACCEPTED

input
57 99

correct output
49.32720561735655

user output
49.327205617356550

Test 5

Verdict: ACCEPTED

input
126 251

correct output
122.3492366782931

user output
122.349236678293146

Test 6

Verdict: ACCEPTED

input
326 393

correct output
196.4999999999999

user output
196.500000000000000

Test 7

Verdict: ACCEPTED

input
180 284

correct output
141.9999938858481

user output
141.999993885848212

Test 8

Verdict: ACCEPTED

input
127 70

correct output
35

user output
35.000000000000000

Test 9

Verdict: ACCEPTED

input
400 390

correct output
195

user output
195.000000000000000

Test 10

Verdict: ACCEPTED

input
384 400

correct output
199.9999999999998

user output
200.000000000000000

Test 11

Verdict: ACCEPTED

input
200 400

correct output
195.7630698036206

user output
195.763069803620707

Test 12

Verdict: ACCEPTED

input
55 100

correct output
49.50874091333049

user output
49.508740913330489

Test 13

Verdict: ACCEPTED

input
60 95

correct output
47.49024624299775

user output
47.490246242997750

Test 14

Verdict: ACCEPTED

input
1 400

correct output
0.5

user output
0.500000000000000

Test 15

Verdict: ACCEPTED

input
400 1

correct output
0.5

user output
0.500000000000000

Test 16

Verdict: ACCEPTED

input
400 400

correct output
200

user output
200.000000000000000

Test 17

Verdict: ACCEPTED

input
115 173

correct output
86.4999890805166119

user output
86.499989080516612