AcWing 1250. 格子游戏
原题链接
简单
作者:
爱挖矿的马里奥
,
2024-12-27 17:24:50
,
所有人可见
,
阅读 3
#include<bits/stdc++.h>
#define N 42000
using namespace std;
int f[N];
int n,m,t;
int x,y,res=0;
char a;
int find(int j){
if(f[j]==j) return j;
else{
f[j]=find(f[j]);
return f[j];
}
}
void add(int i,int j){
f[find(i)]=find(j);
}
int main(){
cin>>n>>m;
t=m;
for(int i=1;i<=n*(n+1);i++){
f[i]=i;
}
for(int t=1;t<=m;t++){
cin>>x>>y>>a;
int i,j;
if(a=='D'){
i=x*n+y;
j=(x+1)*n+y;
}else{
i=x*n+y;
j=x*n+y+1;
}
if(find(i)==find(j))
{
cout<<t<<endl;
return 0;
}
add(i,j);
}
if(res==0){
cout<<"draw";
}
else{
cout<<res;
}
return 0;
}