AcWing 1250. 格子游戏
#include<bits/stdc++.h> using namespace std; int n,m; int fa[1000000]; int found(int x) { if(fa[x]!=x)fa[x]=found(fa[x]); return fa[x]; } int main() { cin>>n>>m; for(int i=1;i<=n*n;i++)fa[i]=i; int w=0; while(w++<m) { int x,y; char a; scanf("%d%d",&x,&y); cin>>a; int d1=(x-1)*n+y; int f1=found(d1); int f2; if(a=='D')f2=found(d1+n); else f2=found(d1+1); if(f1==f2){cout<<w;return 0;} else fa[f1]=f2; } cout<<"draw"; return 0; }