记录编号 |
41387 |
评测结果 |
AAAAAAAAAA |
题目名称 |
杀手游戏 |
最终得分 |
100 |
用户昵称 |
了反取字名我擦 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.004 s |
提交时间 |
2012-07-22 15:29:37 |
内存使用 |
0.32 MiB |
显示代码纯文本
#include<fstream>
#include<sstream>
#include<algorithm>
#include<cmath>
#include<string>
#include<list>
#include<vector>
#include<deque>
#include<queue>
#include<map>
using namespace std;
ifstream fi("bang.in");
ofstream fo("bang.out");
string k;
struct people
{
int bang;
int grenade;
int ghost;
int knife;
int miss;
int parry;
int hp;
people *enemy;
void mp(string k)
{
if(k=="Bang")
bang++;
if(k=="Grenade")
grenade++;
if(k=="Ghost")
ghost++;
if(k=="Knife")
knife++;
if(k=="Miss")
miss++;
if(k=="Parry")
parry++;
}
void cp()
{
if(ghost)
{
if(ghost<=enemy->bang)
{
enemy->bang-=ghost;
ghost=0;
}
else
{
ghost-=enemy->bang;
enemy->bang=0;
enemy->hp-=ghost;
ghost=0;
}
}
if(bang)
{
if(enemy->parry)
{
bang--;
enemy->parry--;
fi>>k;
enemy->mp(k);
}
else
if(enemy->miss)
{
bang--;
enemy->miss--;
}
else
{
bang--;
enemy->hp--;
}
}
if(grenade)
{
for(int i=0;i<grenade;i++)
if(enemy->parry)
{
grenade--;
enemy->parry--;
fi>>k;
enemy->mp(k);
}
else
break;
if(grenade<=enemy->miss)
{
enemy->miss-=grenade;
grenade=0;
}
else
{
grenade-=enemy->miss;
enemy->miss=0;
enemy->hp-=grenade;
grenade=0;
}
}
if(knife)
{
enemy->hp-=knife;
knife=0;
}
}
void qp()
{
while(bang+miss+parry>hp)
{
if(bang)
bang--;
else
if(miss)
miss--;
else
parry--;
}
}
void init()
{
bang=0;
grenade=0;
ghost=0;
knife=0;
miss=0;
parry=0;
hp=4;
}
}a,b;
int main()
{
a.enemy=&b;
b.enemy=&a;
while(1)
{
if(k==".")
break;
a.init();
b.init();
for(int i=0;i<4;i++)
{
fi>>k;
a.mp(k);
}
for(int i=0;i<4;i++)
{
fi>>k;
b.mp(k);
}
while(1)
{
fi>>k;
if(k=="===")
break;
if(k==".")
break;
a.mp(k);
fi>>k;
a.mp(k);
a.cp();
a.qp();
if(b.hp<=0)
{
fo<<"WIN"<<endl;
break;
}
fi>>k;
b.mp(k);
fi>>k;
b.mp(k);
b.cp();
b.qp();
if(a.hp<=0)
{
fo<<"LOSE"<<endl;
break;
}
}
if(k!="==="&&k!=".")
while(k!="===")
fi>>k;
}
fi.close();
fo.close();
return 0;
}