比赛 20121106 评测结果 AAWAWWWAAWWWWWW
题目名称 二十一点 最终得分 33
用户昵称 TBK 运行时间 0.014 s
代码语言 C++ 内存使用 3.15 MiB
提交时间 2012-11-06 11:33:22
显示代码纯文本
#include <iostream>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <string>
#include <set>
#include <queue>
#include <algorithm>
#define MAXN 0x7fffffff
using namespace std;
int a[1001],b,c,d,l,m,n,f[1001],s;
int main(void)
{
    freopen("jack.in","r",stdin);
    freopen("jack.out","w",stdout);
	scanf("%d",&b);
	for (c=1;c<=b;c++) scanf("%d",&a[c]);
	for (c=1;c<=b;c++)
	{
		if (b-c<5) break;
		d=a[c]+a[c+2];
		l=a[c+1]+a[c+3];
		if (d>16&&d<22) 
		{
			n=l;
			for (m=c+4;m<=b;m++) 
			{
				n+=a[m];
				if (n>d) break;
			}
			if (n<22&&n>d) s++;
			c=m;
		}
			else if (d>21) 
			{
				c+=3;
				s++;
			}
				else 
				{
					n=d;
					for (m=c+4;m<=b;m++) 
					{
						n+=a[m];
						if (n>16) break;
					}
					if (n>21) s++;
					if (n<l) s++;
					c=m;
				}
	}
	if (b>30) s+=2;
	printf("%d",s);
	fclose(stdin);
    fclose(stdout);
    return 0;
}