NC231666. SOLO
描述
输入描述
第一行输入一个正整数,代表
回合
第二行依次输入个数
,含义如上
接下来行,每行输入
输出描述
输出一行字符串
示例1
输入:
9 1 1 1 1 2 1 2 2 2 1 2 3 2 1 1 1 1 1 1 2 1 2
输出:
mianduijifengba!
说明:
第一回合,劫放手里剑,亚索走位躲掉,亚索总受到伤害0,劫总受到伤害0C 解法, 执行用时: 27ms, 内存消耗: 1060K, 提交时间: 2021-12-19 16:34:50
#include <stdio.h> int main() { int n,i=1,m,a0,a1,b0,b1,c=0,d=0,e=0,f=0,g=0; scanf("%d",&m); int op1[m+1],op2[m+1]; op1[0]=0;op2[0]=0; scanf("%d%d%d%d",&a0,&a1,&b0,&b1); while(m>0){ scanf("%d%d",&op1[i],&op2[i]); if(op1[i]==1){ e++; if(e<3){ d=d+a0; } if(e==3){ e=0; d=d+3*a0; }} if(op1[i]==2){ f++; if(op2[i]==1&&op2[i-1]!=3&&g==0){ c=c-b0; } if(op2[i]==1&&op2[i-1]!=3&&g!=0){ c=c-2*b0; } if(f==5){ f=0; c=c-a1; } } if(op2[i]==1){ if(g!=0) c=c+2*b0; else c=c+b0; } if(op2[i]==2){ g=5; } if(op2[i]==3){ c=c+b1; } if(g!=0) g--; m--; i++;} if(c<d) printf("mianduijifengba!\n"); else if(c==d) printf("hhh\n"); else printf("siyuheian!\n"); return 0; }
C++ 解法, 执行用时: 44ms, 内存消耗: 824K, 提交时间: 2021-12-22 21:29:08
#include<bits/stdc++.h> using namespace std; int main(){ int m,a0,a1,b0,b1,op1,op2,sum1=0,sum2=0,x=0,y=0,now=0,flag=0; for(cin>>m>>a0>>a1>>b0>>b1;m--;){ cin>>op1>>op2; y--,flag--; if(x==5) sum1-=a1,x=0; if(op1==1) sum2+=a0,now++; if(now==3) sum2+=2*a0,now=0; if(op2==1){ if(op1==1||(op1==2&&flag==0)){ if(y>=0) sum1+=2*b0; else sum1+=b0; } } if(op1==2) x++; if(op2==2) y=4; if(op2==3) flag=1,sum1+=b1; } if(sum1==sum2) cout<<"hhh"; else if(sum1<sum2) cout<<"mianduijifengba!"; else cout<<"siyuheian!"; return 0; }