电脑重启更新前极限发个求助帖,顺便存个代码。
这玩意儿没过样例:
#include<bits/stdc++.h>
using namespace std;
const int N=25;
int t,n;
int a[N];
int z[N];
int main()
{
cin>>t>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
for(int i=1;i<=t;i++)
{
int m;
cin>>m;
int b[N];
memset(b,0,sizeof(b));
int d[N];
memset(d,0,sizeof(d));
bool flag=1;
int x=0;
for(int j=1;j<=m;j++)
{
int c,id1,id2;
cin>>c>>id1>>id2;
if((id1>n||id2>n||(z[id1]==0&&a[id1]!=3&&a[id1]!=4))&&flag)
{
cout<<"Wrong"<<endl;
flag=0;
}
if(c==0&&d[id1]==0&&a[id1]==1&&id1!=id2)
{
b[id2]=0;
d[id1]=1;
z[id2]=0;
x++;
}
else if(c==1&&d[id1]==0&&a[id1]==4&&id1!=id2)
{
b[id2]=0;
d[id1]=1;
z[id2]=0;
x++;
}
else if(c==2&&d[id1]==0&&a[id1]==4&&z[id2]==0)
{
b[id2]=1;
d[id1]=1;
z[id2]=0;
x--;
}
else if(c==3&&d[id1]==0&&a[id1]==3&&z[id2]==1&&z[id1]==0)
{
b[id2]=0;
z[id2]=0;
x++;
}
else
{
cout<<"Wrong"<<endl;
flag=0;
}
}
if(flag)
{
if(x==0)
{
cout<<"Safe"<<endl;
continue;
}
cout<<x<<' ';
for(int i=1;i<=n;i++)
{
if(b[i]==0)
{
cout<<i<<' ';
}
}
cout<<endl;
}
}
return 0;
}