比赛 |
20121106 |
评测结果 |
AWAWWWWWAWWWAWW |
题目名称 |
二十一点 |
最终得分 |
26 |
用户昵称 |
Cloud |
运行时间 |
0.030 s |
代码语言 |
C++ |
内存使用 |
3.06 MiB |
提交时间 |
2012-11-06 11:06:49 |
显示代码纯文本
#include<fstream>
#include<queue>
using namespace std;
struct yu
{
int win;
bool f;
int p;
int s;
bool x,y;
int a,b;
};
queue<yu> dq;
yu tmp;
int main(void)
{
ifstream fin("jack.in");
ofstream fout("jack.out");
int n;
int v[1000];
int i;
fin>>n;
if(n<6)
{
fout<<0;
return 0;
}
for(i=0;i<n;i++)
fin>>v[i];
tmp.a=v[0]+v[2];
tmp.b=v[1]+v[3];
tmp.s=0;
tmp.p=4;
dq.push(tmp);
int ans=1;
while(dq.size())
{
if(tmp.a>21)
{
tmp.win++;
if(tmp.win>ans)
ans=tmp.win;
if(n-tmp.p>=6)
{
tmp.a=0,tmp.b=0;
tmp.x=0,tmp.y=0;
tmp.f=0;
tmp.a=v[tmp.p]+v[tmp.p+2];
tmp.b=v[tmp.p+1]+v[tmp.p+3];
tmp.p+=4;
dq.push(tmp);
}
}
tmp=dq.front();
if(tmp.b>21)
{
if(n-tmp.p>=6)
{
tmp.a=0,tmp.b=0;
tmp.x=0,tmp.y=0;
tmp.f=0;
tmp.a=v[tmp.p]+v[tmp.p+2];
tmp.b=v[tmp.p+1]+v[tmp.p+3];
tmp.p+=4;
dq.push(tmp);
}
}
tmp=dq.front();
if(!tmp.f&&(tmp.s==0||tmp.s==2))
{
if(tmp.a<=16)
{
tmp.f=1;
tmp.a+=v[tmp.p];
tmp.p++;
dq.push(tmp);
}
else
{
tmp.f=1;
tmp.s++;
dq.push(tmp);
}
}
tmp=dq.front();
if(tmp.f&&(tmp.s==0||tmp.s==1))
{
tmp.f=0;
tmp.b+=v[tmp.p];
tmp.p++;
dq.push(tmp);
tmp=dq.front();
tmp.f=0;
tmp.s+=2;
dq.push(tmp);
tmp=dq.front();
if(tmp.s==1&&tmp.a<tmp.b)
{
tmp.win++;
if(tmp.win>ans)
ans=tmp.win;
if(n-tmp.p>=6)
{
tmp.a=0,tmp.b=0;
tmp.x=0,tmp.y=0;
tmp.f=0;
tmp.a=v[tmp.p]+v[tmp.p+2];
tmp.b=v[tmp.p+1]+v[tmp.p+3];
tmp.p+=4;
dq.push(tmp);
}
}
}
tmp=dq.front();
if(tmp.s==3)
{
if(tmp.b>tmp.a)
{
tmp.win++;
if(tmp.win>ans)
ans=tmp.win;
}
if(n-tmp.p>=6)
{
tmp.a=0,tmp.b=0;
tmp.x=0,tmp.y=0;
tmp.f=0;
tmp.a=v[tmp.p]+v[tmp.p+2];
tmp.b=v[tmp.p+1]+v[tmp.p+3];
tmp.p+=4;
dq.push(tmp);
}
}
dq.pop();
}
fout<<ans;
fin.close();
fout.close();
return 0;
}