AcWing 3234. 炉石传说
原题链接
中等
作者:
めぐる_9
,
2025-04-10 22:26:34
· 湖北
,
所有人可见
,
阅读 1
using namespace std;
int n;
struct Q{
int a=0,b=-1;
}q[2][8];
int main()
{
cin>>n;
int pl=0;
q[0][0].b=30;
q[1][0].b=30;
while(n--)
{
string op;
cin>>op;
if(op=="summon")
{
if(q[pl][0].b<=0)continue;
int a,b,c;
cin>>a>>b>>c;
for(int i=6;i>=a;i--)
{
swap(q[pl][i],q[pl][i+1]);
}
q[pl][a].a=b;q[pl][a].b=c;
}
else if(op=="end")
{
pl^=1;
}
else
{
int a,b;
cin>>a>>b;
q[pl][a].b-=q[1-pl][b].a;
q[1-pl][b].b-=q[pl][a].a;
if(q[pl][a].b<=0&&a!=0)
for(int i=a;i<7;i++)
swap(q[pl][i],q[pl][i+1]);
if(q[1-pl][b].b<=0&&b!=0)
for(int i=b;i<7;i++)
swap(q[1-pl][i],q[1-pl][i+1]);
}
}
if(q[0][0].b<=0)cout<<-1<<endl;
else if(q[1][0].b<=0)cout<<1<<endl;
else cout<<0<<endl;
int num1=0,num2=0;
for(int i=1;i<=7;i++){
if(q[0][i].b>0)num1++;
if(q[1][i].b>0)num2++;
}
cout<<q[0][0].b<<endl;
cout<<num1<<' ';
for(int i=1;i<=num1;i++){
cout<<q[0][i].b<<' ';
}
cout<<endl;
cout<<q[1][0].b<<endl;
cout<<num2<<' ';
for(int i=1;i<=num2;i++){
cout<<q[1][i].b<<' ';
}
cout<<endl;
return 0;
}