比赛 |
2025.3.18 |
评测结果 |
AAAAAAAAAA |
题目名称 |
奇偶性游戏 |
最终得分 |
100 |
用户昵称 |
郑霁桓 |
运行时间 |
0.066 s |
代码语言 |
C++ |
内存使用 |
3.65 MiB |
提交时间 |
2025-03-18 19:40:20 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
long long n,m,nm,l[5005],r[5005],t[10005],h[20005],hl,hr,hll,hrr;
string s[5005];
long long f(long long x){
if(h[x]==x) return x;
return h[x]=f(h[x]);
}
int main(){
freopen("parity.in","r",stdin);
freopen("parity.out","w",stdout);
cin>>n>>m;
for(int i=1;i<=m;i++)
cin>>l[i]>>r[i]>>s[i],t[i*2-1]=--l[i],t[i*2]=r[i];
for(int i=1;i<=m*4;i++) h[i]=i;
sort(t+1,t+m*2+1);
nm=unique(t+1,t+m*2+1)-t-1;
for(int i=1;i<=m;i++){
l[i]=lower_bound(t+1,t+nm+1,l[i])-t;
r[i]=lower_bound(t+1,t+nm+1,r[i])-t;
hl=f(l[i]),hr=f(r[i]),hll=f(l[i]+m),hrr=f(r[i]+m);
if(s[i][0]=='e'&&(hl==hrr||hr==hll)){cout<<i-1;return 0;}
if(s[i][0]=='o'&&(hl==hr||hrr==hll)){cout<<i-1;return 0;}
if(s[i][0]=='e') h[hl]=hr,h[hll]=hrr;
if(s[i][0]=='o') h[hll]=hr,h[hl]=hrr;
}
cout<<m;
return 0;
}