2017计蒜客第二场-百度的年终游戏-CSDN博客

55 阅读1分钟

百度的年终游戏

题目超链接一般都含在文字中了

之前我是不懂麻将规则的,做完这题,我想我可能是个麻将高手了。开玩笑啦 ^-^模拟题

#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;
}


\