比赛 |
2025暑期集训第6场 |
评测结果 |
AAAAAAAAAA |
题目名称 |
Cow Operations |
最终得分 |
100 |
用户昵称 |
会挽弯弓满月 |
运行时间 |
0.443 s |
代码语言 |
C++ |
内存使用 |
6.06 MiB |
提交时间 |
2025-07-12 10:01:39 |
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
const int N=2e5+10;
int read(){
int x=0,f=1;
char c=getchar();
while(c<48||c>57){
if(c==45) f=-1;
c=getchar();
}
while(c>=48&&c<=57){
x=x*10+c-48;
c=getchar();
}
return f*x;
}
string s;
int a[N],sum[N][4];
int n,m;
int l,r;
void init(){
for(int i=1;i<=m;i++){
sum[i][1]=sum[i-1][1];
sum[i][2]=sum[i-1][2];
sum[i][3]=sum[i-1][3];
sum[i][a[i]]++;
}
return;
}
int ans[4];
int main(){
freopen("operation.in","r",stdin);
freopen("operation.out","w",stdout);
cin>>s;
m=s.size();
//C:1 O:2 W:3
for(int i=0;i<m;i++){
if(s[i]=='C') a[i+1]=1;
else if(s[i]=='O') a[i+1]=2;
else a[i+1]=3;
}
init();
n=read();
for(int i=1;i<=n;i++){
l=read();r=read();
for(int j=1;j<=3;j++){
ans[j]=sum[r][j]-sum[l-1][j];
ans[j]%=2;
}
if(ans[2]==ans[3]&&ans[2]!=ans[1]) printf("Y");
else printf("N");
}
return 0;
}