记录编号 599538 评测结果 AAAAAAAAWW
题目名称 [CEOI 1999] 奇偶性游戏 最终得分 80
用户昵称 Gravatar李奇文 是否通过 未通过
代码语言 C++ 运行时间 0.069 s
提交时间 2025-03-20 21:58:34 内存使用 3.47 MiB
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
const int N=1e7;
int n,q;
map<int,int> f;
map<int,int> a;
int findf(int x){
	if(f[x]==0||f[x]==x)return f[x]=x;
	a[x]+=a[f[x]];a[x]=a[x]&1;
	f[x]=findf(f[x]);
	return findf(f[x]);
}
int main(){	
	freopen("parity.in","r",stdin);
	freopen("parity.out","w",stdout);
	std::cin>>n>>q;
	for(int i=1;i<=q;i++){
		int l,r,tb=1;string s;
		std::cin>>l>>r>>s;
		r++;
		if(s=="even") tb=0;
		int fl=findf(l),fr=findf(r);
		if(fl==fr){
			if(a[l]!=((a[r]+tb)&1)) std::cout<<i-1;
			else continue;
			return 0;
		}else{
			a[fr]=(a[r]!=tb),f[fr]=l;
		}
	}
	std::cout<<q;
	return 0;
}