#include <stdio.h>
#include <time.h>
#include<stdlib.h>
int choose_target(int m[]){
if(m[1]<=m[2] && m[1]<=m[3] && m[2] <= m[3]){ //1<2<3
if (m[1] != 0) return 1;
else if (m[2] != 0) return 2;
else return 3;
}
if(m[1]<=m[2] && m[1]<=m[3] && m[3] <= m[2]){ //1<3<2
if (m[1] != 0) return 1;
else if (m[3] != 0) return 3;
else return 2;
}
if(m[2]<=m[1] && m[1]<=m[3] && m[2] <= m[3]){ //2<1<3
if (m[2] != 0) return 2;
else if (m[1] != 0) return 1;
else return 3;
}
if(m[2]<=m[3] && m[3]<=m[1] && m[2] <= m[1]){ //2<3<1
if (m[2] != 0) return 2;
else if (m[3] != 0) return 3;
else return 1;
}
if(m[3]<=m[1] && m[1]<=m[2] && m[3] <= m[2]){ //3<1<2
if (m[3] != 0) return 3;
else if (m[1] != 0) return 1;
else return 2;
}
if(m[3]<=m[2] && m[2]<=m[1] && m[3] <= m[1]){ //3<2<1
if (m[3] != 0) return 3;
else if (m[2] != 0) return 2;
else return 1;
}
}
int main(void) {
int target[5],hit,bomb,count=0;
int sample = 10000000;
for (int i=1;i<=sample;i++){
target[0]=5;
target[1]=11;
target[2]=14;
target[3]=14;
target[4]=19;
for (int j=1;j<=5;j++){
hit = choose_target(target); //選三嘲諷血最低
target[hit]--; //目標-1
do{
bomb
= (rand()%5); //炸彈目標
}while(target[bomb]==0); //非0血目標
target
[bomb
] = target
[bomb
] - (rand()%4) - 1; //炸彈造成傷害
if(target[bomb]<0)target[bomb]=0;
}
for (int k=6;k>=1;k--){ //六張牌抽牌 內有三炸彈
int draw
= (rand()%k
) + 1 ; if(draw>=4)target[4]=target[4]-5;
else break;
}
if(target[4]<=0) count++;
}
printf("percentage: %.6f",((float)count
)/sample
); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDx0aW1lLmg+CiNpbmNsdWRlPHN0ZGxpYi5oPgppbnQgY2hvb3NlX3RhcmdldChpbnQgbVtdKXsKCQogIGlmKG1bMV08PW1bMl0gJiYgbVsxXTw9bVszXSAmJiBtWzJdIDw9IG1bM10peyAvLzE8MjwzCiAgCWlmIChtWzFdICE9IDApIHJldHVybiAxOwogIAllbHNlIGlmIChtWzJdICE9IDApIHJldHVybiAyOwogIAllbHNlIHJldHVybiAzOwogIH0KICBpZihtWzFdPD1tWzJdICYmIG1bMV08PW1bM10gJiYgbVszXSA8PSBtWzJdKXsgLy8xPDM8MgogIAlpZiAobVsxXSAhPSAwKSByZXR1cm4gMTsKICAJZWxzZSBpZiAobVszXSAhPSAwKSByZXR1cm4gMzsKICAJZWxzZSByZXR1cm4gMjsKICB9CiAgaWYobVsyXTw9bVsxXSAmJiBtWzFdPD1tWzNdICYmIG1bMl0gPD0gbVszXSl7IC8vMjwxPDMgCiAgCWlmIChtWzJdICE9IDApIHJldHVybiAyOwogIAllbHNlIGlmIChtWzFdICE9IDApIHJldHVybiAxOwogIAllbHNlIHJldHVybiAzOwogIH0KICBpZihtWzJdPD1tWzNdICYmIG1bM108PW1bMV0gJiYgbVsyXSA8PSBtWzFdKXsgLy8yPDM8MQogICAJaWYgKG1bMl0gIT0gMCkgcmV0dXJuIDI7CiAgCWVsc2UgaWYgKG1bM10gIT0gMCkgcmV0dXJuIDM7CiAgCWVsc2UgcmV0dXJuIDE7CiAgfQogIGlmKG1bM108PW1bMV0gJiYgbVsxXTw9bVsyXSAmJiBtWzNdIDw9IG1bMl0peyAvLzM8MTwyCiAgCWlmIChtWzNdICE9IDApIHJldHVybiAzOwogIAllbHNlIGlmIChtWzFdICE9IDApIHJldHVybiAxOwogIAllbHNlIHJldHVybiAyOwogIH0KICBpZihtWzNdPD1tWzJdICYmIG1bMl08PW1bMV0gJiYgbVszXSA8PSBtWzFdKXsgLy8zPDI8MQogIAlpZiAobVszXSAhPSAwKSByZXR1cm4gMzsKICAJZWxzZSBpZiAobVsyXSAhPSAwKSByZXR1cm4gMjsKICAJZWxzZSByZXR1cm4gMTsKICB9CiAKIAp9CiAKIAppbnQgbWFpbih2b2lkKSB7CglpbnQgdGFyZ2V0WzVdLGhpdCxib21iLGNvdW50PTA7CglzcmFuZCh0aW1lKE5VTEwpKTsKCWludCBzYW1wbGUgPSAxMDAwMDAwMDsKCWZvciAoaW50IGk9MTtpPD1zYW1wbGU7aSsrKXsKCQl0YXJnZXRbMF09NTsKCQl0YXJnZXRbMV09MTE7CgkJdGFyZ2V0WzJdPTE0OwoJCXRhcmdldFszXT0xNDsKCQl0YXJnZXRbNF09MTk7CgkJZm9yIChpbnQgaj0xO2o8PTU7aisrKXsKCQkJCgkJCWhpdCA9IGNob29zZV90YXJnZXQodGFyZ2V0KTsgICAgICAgIC8v6YG45LiJ5Ziy6Ku36KGA5pyA5L2OIAoJCQkKCQkJdGFyZ2V0W2hpdF0tLTsgICAgICAgICAgICAgICAgICAgICAgLy/nm67mqJktMSAKCQkJZG97CiAJCQkJCgkJCQlib21iID0gKHJhbmQoKSU1KTsgICAgICAgICAgICAgIC8v54K45b2I55uu5qiZIAogCgkJCX13aGlsZSh0YXJnZXRbYm9tYl09PTApOyAgICAgICAgICAgIC8v6Z2eMOihgOebruaomSAKCQkJCgkJCXRhcmdldFtib21iXSA9IHRhcmdldFtib21iXSAtIChyYW5kKCklNCkgLSAxOyAgLy/ngrjlvYjpgKDmiJDlgrflrrMgCiAKCQkJaWYodGFyZ2V0W2JvbWJdPDApdGFyZ2V0W2JvbWJdPTA7CgkJCQkJCQkgIH0JCiAKCQlmb3IgKGludCBrPTY7az49MTtrLS0pewkJCQkJLy/lha3lvLXniYzmir3niYwg5YWn5pyJ5LiJ54K45b2IIAoJCQlpbnQgZHJhdyA9IChyYW5kKCklaykgKyAxIDsKCQkJaWYoZHJhdz49NCl0YXJnZXRbNF09dGFyZ2V0WzRdLTU7CgkJCWVsc2UgYnJlYWs7CiAKCQl9CiAKCQlpZih0YXJnZXRbNF08PTApIGNvdW50Kys7CiAKCQkJCQkJCQl9CgkJcHJpbnRmKCJwZXJjZW50YWdlOiAlLjZmIiwoKGZsb2F0KWNvdW50KS9zYW1wbGUpOwoJCXJldHVybiAwOwp9CiA=