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