社区讨论
0pts 求调玄关
P11601『Fwb』狼人の杀戮参与者 2已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @mjwi9l5f
- 此快照首次捕获于
- 2026/01/02 14:41 2 个月前
- 此快照最后确认于
- 2026/01/04 23:55 2 个月前
rt.这是代码:
CPP#include<bits/stdc++.h>
using namespace std;
const int MAXN=1e2+5;
struct info{
int zy;
bool flag_die=1;
bool flag_sha=0;
bool flag_du=0;
bool flag_jie=0;
bool flag_yao=0;
bool flag_dai=0;
bool flag_isdai=0;
};
struct info a[MAXN];
int t,n;
int main(){
scanf("%d%d",&t,&n);
for(int i=1;i<=n;i++){
scanf("%d",&a[i].zy);
if(a[i].zy==4){
a[i].flag_du=1;
a[i].flag_jie=1;
}
}
for(int i=1;i<=t;i++){
int m,cnt=0;
bool flag_cw=1;
scanf("%d",&m);
struct info tmp[MAXN]={0};
int sw[MAXN]={0};
for(int j=1;j<=n;j++){
tmp[j].zy=a[j].zy;
tmp[j].flag_die=a[j].flag_die;
if(a[j].zy==1)tmp[j].flag_sha=1;
if(a[j].zy==3)tmp[j].flag_dai=1;
if(a[j].zy==4){
tmp[j].flag_du=a[j].flag_du;
tmp[j].flag_jie=a[j].flag_jie;
tmp[j].flag_yao=1;
}
}
for(int j=1;j<=m;j++){
int jd,id1,id2;
bool flag_blhf=1;
scanf("%d%d%d",&jd,&id1,&id2);
if(id1==id2)flag_blhf=0;
else if(jd==0){
if(tmp[id1].zy!=1)flag_blhf=0;
if(tmp[id1].flag_die==0||tmp[id2].flag_die==0)flag_blhf=0;
if(tmp[id1].flag_sha==0)flag_blhf=0;
else{
tmp[id2].flag_die=0;
tmp[id1].flag_sha=0;
if(tmp[id2].zy==3)tmp[id2].flag_isdai=1;
sw[++cnt]=id2;
}
}else if(jd==1){
if(tmp[id1].zy!=4)flag_blhf=0;
if(tmp[id1].flag_die==0||tmp[id2].flag_die==0)flag_blhf=0;
if(tmp[id1].flag_yao==0||tmp[id1].flag_du==0)flag_blhf=0;
else{
tmp[id2].flag_die=0;
tmp[id1].flag_du=0;
tmp[id1].flag_yao=0;
if(tmp[id2].zy==3)tmp[id2].flag_isdai=1;
sw[++cnt]=id2;
}
}else if(jd==2){
if(tmp[id1].zy!=4)flag_blhf=0;
if(tmp[id1].flag_die==0||tmp[id2].flag_die==1)flag_blhf=0;
if(tmp[id1].flag_yao==0||tmp[id1].flag_jie==0)flag_blhf=0;
else{
tmp[id2].flag_die=1;
tmp[id1].flag_jie=0;
tmp[id1].flag_yao=0;
if(tmp[id2].zy==3)a[id2].flag_isdai=0;
cnt--;
}
}else if(jd==3){
if(tmp[id1].zy!=3)flag_blhf=0;
if(tmp[id1].flag_die==1||tmp[id2].flag_die==0)flag_blhf=0;
if(tmp[id1].flag_dai==0)flag_blhf=0;
else{
tmp[id2].flag_die=0;
tmp[id1].flag_dai=0;
tmp[id1].flag_isdai=0;
if(tmp[id2].zy==3)tmp[id2].flag_isdai=1;
sw[++cnt]=id2;
sw[++cnt]=id1;
}
}
if(flag_blhf==0)flag_cw=0;
}
for(int j=1;j<=n;j++)
if(tmp[j].flag_isdai==1)flag_cw=0;
if(flag_cw==0)printf("Wrong\n");
else{
if(cnt==0)printf("Safe\n");
else{
for(int j=1;j<=cnt;j++)
printf("%d ",sw[j]);
printf("\n");
}
for(int j=1;j<=n;j++){
a[j].zy=tmp[j].zy;
a[j].flag_die=tmp[j].flag_die;
if(tmp[j].zy==4){
a[j].flag_du=tmp[j].flag_du;
a[j].flag_jie=tmp[j].flag_jie;
}
}
}
}
return 0;
}
回复
共 4 条回复,欢迎继续交流。
正在加载回复...