Simple Round I | B. 魔法照相馆题解
一开始写了个
但是好像不用那么麻烦。
直接用三个布尔类型的变量模拟这三个幕布即可。
对于客人需求的幕布,判断这个幕布是否拉下,如果否,则计数器加
然后根据颜色判断位置,判断这个幕布图层之上的幕布是否拉上,如果没拉上,改没拉上的幕布的状态,计数器加
代码仅供参考,讲的和写的有点细微的差别,讲的思路应该比写的更简单点。
#include<bits/stdc++.h>
using namespace std;
string s;
int ans,n;
bool a[3];//w b r
int main(){
a[0]=1,a[1]=1,a[2]=1;
cin>>n;
cin>>s;
for(int i=0;i<s.size();i++){
if(s[i]=='W'){
if(!a[0]){
ans++;
a[0]=!a[0];
}
}else if(s[i]=='B'){
if(a[0]){
ans++;
a[0]=!a[0];
}
if(!a[1]){
ans++;
a[1]=!a[1];
}
}else{
if(a[0]){
ans++;
a[0]=!a[0];
}
if(a[1]){
ans++;
a[1]=!a[1];
}
if(!a[2]){
ans++;
a[2]=!a[2];
}
}
}
cout<<ans<<endl;
return 0;
}