ccf 炉石传说
考試的時候寫了現在兩倍長的代碼卻只得了60分。〒▽〒〒▽〒〒▽〒。這題沒有什么東西細心一點就行了。
#include<bits/stdc++.h>
using namespace std;
typedef struct
{int t,h;
}S;
S s[2][10];
int main()
{s[0][0].h=30;s[1][0].h=30;int n,a,b,d;int cnt;char c[20];scanf("%d",&n);S temp;int flag=0;while(n--){scanf("%s",c);if(strcmp(c,"summon")==0){scanf("%d %d %d",&a,&b,&d);temp.t=b,temp.h=d;for(int i=6;i>=a;i--){s[flag%2][i+1]=s[flag%2][i];}s[flag%2][a]=temp;}if(strcmp(c,"attack")==0){scanf("%d %d",&a,&b);S t1=s[flag%2][a];S t2=s[(flag+1)%2][b];s[flag%2][a].h-=t2.t;if(s[flag%2][a].h<=0){for(int i=a;i<=6;i++)s[flag%2][i]=s[flag%2][i+1];}s[(flag+1)%2][b].h-=t1.t;if(s[(flag+1)%2][b].h<=0&&b!=0){for(int i=b;i<=6;i++)s[(flag+1)%2][i]=s[(flag+1)%2][i+1];} }if(strcmp(c,"end")==0)flag++;}cnt=0;if(s[0][0].h<=0)printf("-1\n");else if(s[1][0].h<=0)printf("1\n");else printf("0\n");printf("%d\n",s[0][0].h);for(int i=1;i<=7;i++){if(s[0][i].h>0)cnt++;}printf("%d ",cnt);for(int i=1;i<=cnt;i++)printf("%d ",s[0][i].h);printf("\n");cnt=0;printf("%d\n",s[1][0].h);for(int i=1;i<=7;i++)if(s[1][i].h>0)cnt++;printf("%d ",cnt);for(int i=1;i<=cnt;i++)printf("%d ",s[1][i].h);
}
總結
- 上一篇: 远看青山绿水下一句是什么呢?
- 下一篇: 欧拉函数的求法(线性筛法?)