#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int cardnum[13];
void Initialize();
int GetCard();
int Loop();
void ShowCards();
int main() {
int loop = 10000000, lp = loop;
int cnt = 0;
while(lp--) {
Initialize();
if(Loop()) {
++cnt;
//ShowCards();
}
}
printf("%lf\n", (double)cnt
/ loop
); }
void Initialize() {
int i;
for(i = 0; i < 13; ++i) cardnum[i] = 0;
}
int GetCard() {
if(cardnum[c] >= 4) {
return GetCard();
}
return c;
}
int Loop() {
int i;
for(i = 0; i < 14; ++i) {
cardnum[GetCard()]++;
}
for(i = 0; i < 13; ++i) {
if(cardnum[i] % 2) return 0;
}
return 1;
}
void ShowCards() {
int i;
for(i = 0; i < 13; ++i) {
int j;
for(j = 0; j < cardnum[i]; ++j) {
}
}
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8dGltZS5oPgojaW5jbHVkZTxzdGRsaWIuaD4KCmludCBjYXJkbnVtWzEzXTsKCnZvaWQgSW5pdGlhbGl6ZSgpOwppbnQgR2V0Q2FyZCgpOwppbnQgTG9vcCgpOwp2b2lkIFNob3dDYXJkcygpOwoKaW50IG1haW4oKSB7CiAgICBzcmFuZCgodW5zaWduZWQpdGltZShOVUxMKSk7CiAgICBpbnQgbG9vcCA9IDEwMDAwMDAwLCBscCA9IGxvb3A7CiAgICBpbnQgY250ID0gMDsKICAgIHdoaWxlKGxwLS0pIHsKICAgICAgICBJbml0aWFsaXplKCk7CiAgICAgICAgaWYoTG9vcCgpKSB7CiAgICAgICAgICAgICsrY250OwogICAgICAgICAgICAvL1Nob3dDYXJkcygpOwogICAgICAgIH0KICAgIH0KICAgIHByaW50ZigiJWxmXG4iLCAoZG91YmxlKWNudCAvIGxvb3ApOwp9Cgp2b2lkIEluaXRpYWxpemUoKSB7CiAgICBpbnQgaTsKICAgIGZvcihpID0gMDsgaSA8IDEzOyArK2kpIGNhcmRudW1baV0gPSAwOwp9CgppbnQgR2V0Q2FyZCgpIHsKICAgIGludCBjID0gcmFuZCgpICUgMTM7CiAgICBpZihjYXJkbnVtW2NdID49IDQpIHsKICAgICAgICByZXR1cm4gR2V0Q2FyZCgpOwogICAgfQogICAgcmV0dXJuIGM7Cn0KCmludCBMb29wKCkgewogICAgaW50IGk7CiAgICBmb3IoaSA9IDA7IGkgPCAxNDsgKytpKSB7CiAgICAgICAgY2FyZG51bVtHZXRDYXJkKCldKys7CiAgICB9CiAgICBmb3IoaSA9IDA7IGkgPCAxMzsgKytpKSB7CiAgICAgICAgaWYoY2FyZG51bVtpXSAlIDIpIHJldHVybiAwOwogICAgfQogICAgcmV0dXJuIDE7Cn0KCnZvaWQgU2hvd0NhcmRzKCkgewogICAgaW50IGk7CiAgICBmb3IoaSA9IDA7IGkgPCAxMzsgKytpKSB7CiAgICAgICAgaW50IGo7CiAgICAgICAgZm9yKGogPSAwOyBqIDwgY2FyZG51bVtpXTsgKytqKSB7CiAgICAgICAgICAgIHByaW50ZigiJWQgIiwgaSsxKTsKICAgICAgICB9CiAgICB9CiAgICBwcmludGYoIlxuIik7Cn0=