提交时间:2022-08-01 11:33:33

运行 ID: 54353

#include<bits/stdc++.h> using namespace std; int n,m,fa[114514*2],ans[114514*2],top=0; int find(int x) { return x==fa[x]?x:fa[x]=find(fa[x]); } void connect(int a,int b) { if(fa[b]<fa[a]) { fa[a]=b; } else { fa[b]=a; } } int main() { scanf("%d%d",&n,&m); for(int i=1;i<=n+n;i++) { fa[i]=i; } for(int i=1,ty,u,v;i<=m;i++) { scanf("%d%d%d",&ty,&u,&v); if(ty==1) { connect(find(u),find(v)); connect(find(u+n),find(v+n)); } if(ty==2) { connect(find(u),find(v+n)); connect(find(u+n),find(v)); } if(ty==3) { if(find(u)==find(v)&&find(u+n)==find(v+n)) { ans[++top]=0; } else if(find(u+n)==find(v)&&find(u)==find(v+n)) { ans[++top]=1; } else { ans[++top]=2; } } } for(int i=1;i<=n;i++) { if(find(i)==find(i+n)) { printf("ORZKsister\n"); return 0; } } for(int i=1;i<=top;i++) { if(ans[i]==0) { printf("Z\n"); } if(ans[i]==1) { printf("J\n"); } if(ans[i]==2) { printf("K\n"); } } return 0; }