【CCF 炉石传说 模拟题】

来源:互联网 发布:范蠡网络是个空壳公司 编辑:程序博客网 时间:2024/04/28 01:12

按照题目说的进行模拟操作就好了,注意维护slave队列

刚开始的时候wa了,因为在对死亡者进行pop的时候,可能死亡的是英雄,那等到显示slave的时候就会越界

#include <cstdio>#include <string>#include <iostream>using namespace std;class slave{public:    int h, a;    slave(){}    slave(int hh, int aa){h=hh,a=aa;}};class person{public:    int num;    slave* que[10];    person(){num = 0;que[0]=new slave(30,0);}    void push(int pos,int at, int hl)    {        if(pos<=num)        {            for(int i=num+1;i>pos;i--) que[i]=que[i-1];        }        num++;        que[pos]=new slave(hl, at);    }    void pop(int pos)    {        for(int i=pos;i<num;i++) que[i]=que[i+1];        que[num--]=NULL;    }        void out()    {        for(int i=1;i<=num;i++) cout<<que[i]->h<<" "<<que[i]->a<<endl;    }};int main(){    int n;    while(cin>>n)    {        int now = 0;        person s[2];        while(n--)        {            string op;            cin>>op;            int a,b,c;            if(op=="summon")            {                cin>>a>>b>>c;                s[now].push(a,b,c);            }            else if(op=="attack")            {                cin>>a>>b; //at,def                                slave* me, *you;                for(int i=0;i<=s[now].num;i++) if(i==a) me=s[now].que[i];                for(int i=0;i<=s[!now].num;i++) if(i==b) you = s[!now].que[i];                                me->h-=you->a;                you->h-=me->a;                                if(me->h<=0 && a) s[now].pop(a);                if(you->h<=0 && b) s[!now].pop(b);                            }            else if(op=="end")            {                now=!now;            }        }        if(s[0].que[0]->h>0&&s[1].que[0]->h>0) cout<<0<<endl;        else if(s[0].que[0]->h<=0) cout<<-1<<endl;        else if(s[1].que[0]->h<=0) cout<<1<<endl;                for(int i=0;i<2;i++)        {            cout<<s[i].que[0]->h<<endl;            cout<<s[i].num<<" ";            for(int j=1;j<=s[i].num;j++) cout<<s[i].que[j]->h<<" ";            cout<<endl;        }    }    return 0;}


0 0
原创粉丝点击