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;
}

 

posted @ 2021-01-31 15:16  君与  阅读(54)  评论(0编辑  收藏  举报