#include <bits/stdc++.h>
using namespace std;
#define maxrolls 10
#define initialWallet 10000
#define numOfTests 3000
int main() {
srand(time(NULL));
double win = 0;
int qtd = numOfTests;
double medValue = 0.0;
for( int j = 0; j < qtd; j++){
double wallet = initialWallet;
bool lastResult = true;
double lastBet = 0.01;
int counter = 0;
int d = 0;
for (int i = 0;i<maxrolls; i++) {
if (lastResult == true) {
lastBet = 0.01;
counter = d = 0;
}
if (counter == 10) {
d++;
counter = 0;
}
lastBet = (0.01 * pow(2,d));
wallet-=lastBet;
if(wallet < 0) break;
int val = 0;
int roll = rand()%15;
lastResult = (roll == 0);
if(lastResult) wallet += 14*lastBet;
}
win+=(wallet>0);
if(wallet>0)medValue+=wallet;
}
double prob = (win/qtd);
printf("%.5lf - %.5lf\n",(prob*100.0),medValue/win);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbWF4cm9sbHMgMTAKI2RlZmluZSBpbml0aWFsV2FsbGV0IDEwMDAwCiNkZWZpbmUgbnVtT2ZUZXN0cwkzMDAwCgoKaW50IG1haW4oKSB7CglzcmFuZCh0aW1lKE5VTEwpKTsKCWRvdWJsZSB3aW4gPSAwOwoJaW50IHF0ZCA9IG51bU9mVGVzdHM7Cglkb3VibGUgbWVkVmFsdWUgPSAwLjA7Cglmb3IoIGludCBqID0gMDsgaiA8IHF0ZDsgaisrKXsKCQlkb3VibGUgd2FsbGV0ID0gaW5pdGlhbFdhbGxldDsKCQlib29sIGxhc3RSZXN1bHQgPSB0cnVlOwoJCWRvdWJsZSBsYXN0QmV0ID0gMC4wMTsKCQlpbnQgY291bnRlciA9IDA7CgkJaW50IGQgPSAwOwoJCWZvciAoaW50IGkgPSAwO2k8bWF4cm9sbHM7IGkrKykgewoJCQlpZiAobGFzdFJlc3VsdCA9PSAgdHJ1ZSkgewoJCQkJbGFzdEJldCA9IDAuMDE7CgkJCQljb3VudGVyID0gZCA9IDA7CgkJCX0KCQkJCgkJCWlmIChjb3VudGVyID09IDEwKSB7CgkJCQlkKys7CgkJCQljb3VudGVyID0gMDsKCQkJfQoJCQlsYXN0QmV0ID0gKDAuMDEgKiBwb3coMixkKSk7CgkJCXdhbGxldC09bGFzdEJldDsKCQkJaWYod2FsbGV0IDwgMCkgYnJlYWs7CgkJCWludCB2YWwgPSAwOwoJCQlpbnQgcm9sbCA9IHJhbmQoKSUxNTsKCQkJbGFzdFJlc3VsdCA9IChyb2xsID09IDApOyAKCQkJaWYobGFzdFJlc3VsdCkgd2FsbGV0ICs9IDE0Kmxhc3RCZXQ7CgkJfQoJCXdpbis9KHdhbGxldD4wKTsKCQlpZih3YWxsZXQ+MCltZWRWYWx1ZSs9d2FsbGV0OwoJfQoJZG91YmxlIHByb2IgPSAod2luL3F0ZCk7CglwcmludGYoIiUuNWxmIC0gJS41bGZcbiIsKHByb2IqMTAwLjApLG1lZFZhbHVlL3dpbik7CglyZXR1cm4gMDsKfQ==