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