记录编号 |
41371 |
评测结果 |
AAAAAAAAAA |
题目名称 |
杀手游戏 |
最终得分 |
100 |
用户昵称 |
苏轼 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.007 s |
提交时间 |
2012-07-22 15:11:08 |
内存使用 |
0.32 MiB |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
using namespace std;
struct hehe
{
int q[6];
int health;
int number;
}w[2];
int ans=-1,o=0;
string s;
string f[6];
void chu(int x,int ji);
void qipai(int x);
int main()
{
freopen ("bang.in","r",stdin);
freopen ("bang.out","w",stdout);
f[0]="Ghost";
f[1]="Grenade";
f[2]="Bang";
f[3]="Knife";
f[4]="Miss";
f[5]="Parry";
while (1)
{
if (ans!=-1)
{
cin>>s;
if (s==".")
break;
}
if (s=="==="||o==0)
{
ans=-1;
w[0].health=4;
w[0].number=4;
w[1].health=4;
w[1].number=4;
for (int i=0;i<6;i++)
{
w[0].q[i]=0;
w[1].q[i]=0;
}
for (int i=0;i<4;i++)
{
cin>>s;
if (s=="bang.in")
{
i--;
continue;
}
if (s==".")
return 0;
for (int j=0;j<6;j++)
{
if (s==f[j])
{
w[0].q[j]++;
break;
}
}
}
for (int i=0;i<4;i++)
{
cin>>s;
for (int j=0;j<6;j++)
{
if (s==f[j])
{
w[1].q[j]++;
break;
}
}
}
o++;
}
int ji=0;
while (ans==-1)
{
for (int i=0;i<2;i++)
{
cin>>s;
for (int j=0;j<6;j++)
{
if (s==f[j])
{
w[ji].q[j]++;
w[ji].number++;
break;
}
}
}
for (int i=0;i<4;i++)
{
if (i==2&&w[ji].q[i]>0)
{
w[ji].q[i]--;
w[ji].number--;
chu(i,1-ji);
continue;
}
while (w[ji].q[i]>0)
{
w[ji].q[i]--;
w[ji].number--;
chu(i,1-ji);
}
}
if (w[ji].number>w[ji].health)
{
qipai(ji);
w[ji].number=w[ji].health;
}
ji=1-ji;
if (ans!=-1)
{
if (ans==0)
cout<<"WIN"<<endl;
else
cout<<"LOSE"<<endl;
}
}
}
return 0;
}
void chu(int x,int ji)
{
if (x==0)
{
if (w[ji].q[2]>0)
{
w[ji].q[2]--;
w[ji].number--;
return;
}
else
{
w[ji].health--;
if (w[ji].health<1)
ans=1-ji;
}
}
if (x==1)
{
if (w[ji].q[5]>0)
{
w[ji].q[5]--;
cin>>s;
for (int j=0;j<6;j++)
{
if (s==f[j])
{
w[ji].q[j]++;
break;
}
}
return;
}
if (w[ji].q[4]>0)
{
w[ji].q[4]--;
w[ji].number--;
return;
}
w[ji].health--;
if (w[ji].health<1)
ans=1-ji;
}
if (x==2)
{
if (w[ji].q[5]>0)
{
w[ji].q[5]--;
cin>>s;
for (int j=0;j<6;j++)
{
if (s==f[j])
{
w[ji].q[j]++;
break;
}
}
return;
}
if (w[ji].q[4]>0)
{
w[ji].q[4]--;
w[ji].number--;
return;
}
w[ji].health--;
if (w[ji].health<1)
ans=1-ji;
}
if (x==3)
{
w[ji].health--;
if (w[ji].health<1)
ans=1-ji;
}
}
void qipai(int x)
{
for (int i=0;i<w[x].number-w[x].health;i++)
{
if (w[x].q[2]>0)
{
w[x].q[2]--;
continue;
}
if (w[x].q[4]>0)
{
w[x].q[4]--;
continue;
}
if (w[x].q[5]>0)
{
w[x].q[5]--;
continue;
}
}
}