#include <iostream>
#include <time.h>
#include <stdlib.h>
using namespace std;
int main() {
int N=3000000;
int totalwinnings=0;
srand (time(NULL));
for(int j=0; j<N; j++){ // plays the game N times
bool deck[52] = {false};
int pick;
bool filled = 0;
int red = 26;
int black = 26;
int wallet = 0;
for(int i=0; i<26; i++){ // randomises the deck
filled=0;
while(!filled){
pick=rand()%52;
if(deck[pick]==0){deck[pick]=1; filled=1;}
}
}
for(int i = 0; i<52; i++){ // plays the game with smart strategy
if(red<black){if(deck[i]==0){wallet++;} else{wallet--;}}
else{if(deck[i]==1){wallet++;} else{wallet--;}}
black -= 1-deck[i]; red -= deck[i];
// cout << "Deck: "; for(int i=0; i<52; i++){cout << deck[i];}
// cout << " Reds: " << red << " Blacks: " << black;
// cout << " Wallet: " << wallet << endl;;
}
totalwinnings += wallet;
}
cout << "Total Winnings: " << totalwinnings << " Average Winnings: " << float(totalwinnings)/N;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dGltZS5oPiAKI2luY2x1ZGUgPHN0ZGxpYi5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CglpbnQgTj0zMDAwMDAwOwoJaW50IHRvdGFsd2lubmluZ3M9MDsKCXNyYW5kICh0aW1lKE5VTEwpKTsKCWZvcihpbnQgaj0wOyBqPE47IGorKyl7IC8vIHBsYXlzIHRoZSBnYW1lIE4gdGltZXMKCQlib29sIGRlY2tbNTJdID0ge2ZhbHNlfTsKCQlpbnQgcGljazsKCQlib29sIGZpbGxlZCA9IDA7CgkJaW50IHJlZCA9IDI2OwoJCWludCBibGFjayA9IDI2OwoJCWludCB3YWxsZXQgPSAwOwoKCQlmb3IoaW50IGk9MDsgaTwyNjsgaSsrKXsgLy8gcmFuZG9taXNlcyB0aGUgZGVjawoJCQlmaWxsZWQ9MDsKCQkJd2hpbGUoIWZpbGxlZCl7CgkJCQlwaWNrPXJhbmQoKSU1MjsKCQkJCWlmKGRlY2tbcGlja109PTApe2RlY2tbcGlja109MTsgZmlsbGVkPTE7fQoJCQl9CgkJfQoJCWZvcihpbnQgaSA9IDA7IGk8NTI7IGkrKyl7IC8vIHBsYXlzIHRoZSBnYW1lIHdpdGggc21hcnQgc3RyYXRlZ3kKCQoJCQlpZihyZWQ8YmxhY2spe2lmKGRlY2tbaV09PTApe3dhbGxldCsrO30gZWxzZXt3YWxsZXQtLTt9fQoJCQllbHNle2lmKGRlY2tbaV09PTEpe3dhbGxldCsrO30gZWxzZXt3YWxsZXQtLTt9fQoJCgkJCWJsYWNrIC09IDEtZGVja1tpXTsgcmVkIC09IGRlY2tbaV07CgkKLy8JCQljb3V0IDw8ICJEZWNrOiAiOyBmb3IoaW50IGk9MDsgaTw1MjsgaSsrKXtjb3V0IDw8IGRlY2tbaV07fQovLwkJCWNvdXQgPDwgIiBSZWRzOiAiIDw8IHJlZCA8PCAiIEJsYWNrczogIiA8PCBibGFjazsKLy8JCQljb3V0IDw8ICIgV2FsbGV0OiAiIDw8IHdhbGxldCA8PCBlbmRsOzsKCQoJCX0KCQl0b3RhbHdpbm5pbmdzICs9IHdhbGxldDsKCX0KCWNvdXQgPDwgIlRvdGFsIFdpbm5pbmdzOiAiIDw8IHRvdGFsd2lubmluZ3MgPDwgIiBBdmVyYWdlIFdpbm5pbmdzOiAiIDw8IGZsb2F0KHRvdGFsd2lubmluZ3MpL047CglyZXR1cm4gMDsKfQ==