#include <iostream>
#include <stdio.h>
#include <cstdlib>
#include <ctime>
using namespace std;
const int N = 1000000;
int main()
{
bool doors[3];
int count_switch = 0;
int count_switch_WIN = 0;
int count_NOswitch = 0;
int count_NOswitch_WIN = 0;
srand(time(0));
for (int i = 0; i < N; ++i)
{
for (int j = 0; j < 3; doors[j++] = false);
doors[rand() % 3] = true;
int myDoor = rand() % 3;
int firstOpen;
do
{
firstOpen = rand() % 3;
} while (firstOpen == myDoor || doors[firstOpen] == true);
int switchDoor = rand() % 2;
if (switchDoor == 1)
{
for (int j = 0; j < 3; ++j)
{
if (j != myDoor && j != firstOpen)
{
myDoor = j;
break;
}
}
}
if (switchDoor == 1)
{
++count_switch;
if (doors[myDoor] == true) ++count_switch_WIN;
}
if (switchDoor == 0)
{
++count_NOswitch;
if (doors[myDoor] == true) ++count_NOswitch_WIN;
}
}
double winrate = (double)count_switch_WIN / count_switch * 100;
double winrateNO = (double)count_NOswitch_WIN / count_NOswitch * 100;
printf("Switch_WINRATE: %f% (%d game)\nNOSwitch_WINRATE: %f% (%d game)\n", winrate, count_switch, winrateNO, count_NOswitch);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RkaW8uaD4KCiNpbmNsdWRlIDxjc3RkbGliPgojaW5jbHVkZSA8Y3RpbWU+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IE4gPSAxMDAwMDAwOwoKCmludCBtYWluKCkKewoJYm9vbCBkb29yc1szXTsKCglpbnQgY291bnRfc3dpdGNoID0gMDsKCWludCBjb3VudF9zd2l0Y2hfV0lOID0gMDsKCglpbnQgY291bnRfTk9zd2l0Y2ggPSAwOwoJaW50IGNvdW50X05Pc3dpdGNoX1dJTiA9IDA7CgoJc3JhbmQodGltZSgwKSk7CgoKCWZvciAoaW50IGkgPSAwOyBpIDwgTjsgKytpKQoJewoJCWZvciAoaW50IGogPSAwOyBqIDwgMzsgZG9vcnNbaisrXSA9IGZhbHNlKTsKCQlkb29yc1tyYW5kKCkgJSAzXSA9IHRydWU7CgkJCgkJaW50IG15RG9vciA9IHJhbmQoKSAlIDM7CgoJCWludCBmaXJzdE9wZW47CgkJZG8KCQl7CgkJCWZpcnN0T3BlbiA9IHJhbmQoKSAlIDM7CgkJfSB3aGlsZSAoZmlyc3RPcGVuID09IG15RG9vciB8fCBkb29yc1tmaXJzdE9wZW5dID09IHRydWUpOwoKCgkJaW50IHN3aXRjaERvb3IgPSByYW5kKCkgJSAyOwoKCQlpZiAoc3dpdGNoRG9vciA9PSAxKQoJCXsKCQkJZm9yIChpbnQgaiA9IDA7IGogPCAzOyArK2opCgkJCXsKCQkJCWlmIChqICE9IG15RG9vciAmJiBqICE9IGZpcnN0T3BlbikKCQkJCXsKCQkJCQlteURvb3IgPSBqOwoJCQkJCWJyZWFrOwoJCQkJfQoJCQl9CgkJfQoKCQlpZiAoc3dpdGNoRG9vciA9PSAxKQoJCXsKCQkJKytjb3VudF9zd2l0Y2g7CgkJCWlmIChkb29yc1tteURvb3JdID09IHRydWUpICsrY291bnRfc3dpdGNoX1dJTjsKCQl9CgkJaWYgKHN3aXRjaERvb3IgPT0gMCkKCQl7CgkJCSsrY291bnRfTk9zd2l0Y2g7CgkJCWlmIChkb29yc1tteURvb3JdID09IHRydWUpICsrY291bnRfTk9zd2l0Y2hfV0lOOwoJCX0KCX0KCglkb3VibGUgd2lucmF0ZSA9IChkb3VibGUpY291bnRfc3dpdGNoX1dJTiAvIGNvdW50X3N3aXRjaCAqIDEwMDsKCWRvdWJsZSB3aW5yYXRlTk8gPSAoZG91YmxlKWNvdW50X05Pc3dpdGNoX1dJTiAvIGNvdW50X05Pc3dpdGNoICogMTAwOwoKCXByaW50ZigiU3dpdGNoX1dJTlJBVEU6ICAgJWYlICglZCBnYW1lKVxuTk9Td2l0Y2hfV0lOUkFURTogJWYlICglZCBnYW1lKVxuIiwgd2lucmF0ZSwgY291bnRfc3dpdGNoLCB3aW5yYXRlTk8sIGNvdW50X05Pc3dpdGNoKTsKCgoJcmV0dXJuIDA7Cn0=