比赛 2025.3.18 评测结果 WAAAWWAWWW
题目名称 奇偶性游戏 最终得分 40
用户昵称 Ruyi 运行时间 0.653 s
代码语言 C++ 内存使用 9.91 MiB
提交时间 2025-03-18 20:22:00
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n,m,x;
bool flag=false;
struct node{
	int l,r,num;
	string s;
}a[5001];
map<pair<int,int>,int> v;
int main(){
	freopen("parity.in","r",stdin);
	freopen("parity.out","w",stdout);
	cin>>n>>m;
	x=m;
	for(int i=1;i<=m;i++){
		cin>>a[i].l>>a[i].r>>a[i].s;
		if(a[i].s=="even") a[i].num=2;
		else a[i].num=1;
	}
	for(int i=1;i<=m;i++){
		if(v[{a[i].l,a[i].r}]==0||v[{a[i].l,a[i].r}]==a[i].num) v[{a[i].l,a[i].r}]=a[i].num;
		else break;
		for(int j=1;j<i;j++){
			if(a[j].r+1==a[i].l){
				v[{a[j].l,a[i].r}]=(a[j].num+a[i].num)%2+2;
			}
			if(a[i].r+1==a[j].l){
				v[{a[i].l,a[j].r}]=(a[j].num+a[i].num)%2+2;
			}
			if(a[j].l<=a[i].l&&a[i].l<=a[j].r){
				if(a[i].l>a[j].l&&a[i].r==a[j].r){
					if(v[{a[j].l,a[i].l-1}]==0||v[{a[j].l+1,a[i].l}]%2==abs(a[i].num-a[j].num)%2) v[{a[j].l+1,a[i].l}]=abs(a[i].num-a[j].num)+2;
					else{
						x=i-1;
						flag=true;
						break;
					}
				}
				if(a[i].r>a[j].r&&a[i].l==a[j].l){
					if(v[{a[j].r+1,a[i].r}]==0||v[{a[j].r+1,a[i].r}]%2==abs(a[i].num-a[j].num)%2) v[{a[j].r+1,a[i].r}]=abs(a[i].num-a[j].num)+2;
					else{
						x=i-1;
						flag=true;
						break;
					}
				}
			}
			if(a[j].l<=a[i].r&&a[i].r<=a[j].r){
				if(a[i].r<a[j].r&&a[i].l==a[j].l){
					if(v[{a[i].r+1,a[j].r}]==0||v[{a[i].r+1,a[j].r}]%2==abs(a[i].num-a[j].num)%2) v[{a[i].r+1,a[j].r}]=abs(a[i].num-a[j].num)+2;
					else{
						x=i-1;
						flag=true;
						break;
					}
				}
				if(a[i].l<a[j].l&&a[i].r==a[j].r){
					if(v[{a[i].l+1,a[j].l}]==0||v[{a[i].l+1,a[j].l}]%2==abs(a[i].num-a[j].num)%2) v[{a[i].l+1,a[j].l}]=abs(a[i].num-a[j].num)+2;
					else{
						x=i-1;
						flag=true;
						break;
					}
				}
		    }
		}
		if(flag) break;
	}
	cout<<x<<endl;
	return 0;
}