题目超链接一般都含在文字中了
之前我是不懂麻将规则的,做完这题,我想我可能是个麻将高手了。开玩笑啦 ^-^模拟题
#include <cstdio>
#include <algorithm>
using namespace std;
int num[4], k, d, cnt;
bool fun(int x, int y) {
int aim = (x + y) % 4, cur = min(x, y) + 1;
int player = 1, times = 0; //玩家1先拿牌
if (k == 4) {
k = 0;
}
while (times < 12) {
if (cur <= num[aim]) {
//player 玩家 该去取 cur 号牌
if (aim == k && (cur == d || cur == d - 1)) {
return (player == 1 && cur == d);
}
cur += 2;
times++; //拿了一次
player = (player + 1) % 4;
}
else {
cur = cur - num[aim];
aim = (aim + 3) % 4; //取牌顺序 0 3 2 1 0
}
}
return false;
}
int main()
{
while (~scanf("%d%d%d%d%d%d",
&num[1], &num[2], &num[3], &num[0], &k, &d)) {
cnt = 0;
for (int i = 1; i <= 6; ++i) {
for (int j = i; j <= 6; ++j) {
if (fun(i, j)) {
//printf("%d %d\n", i, j);
cnt++;
}
}
}
printf("%d\n", cnt);
}
return 0;
}
\