社区讨论

奇葩60分代码,想不到红题都切不了了……

P9503 『MGOI』Simple Round I | B. 魔法照相馆参与者 5已保存回复 6

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
6 条
当前快照
1 份
快照标识符
@lo1y5ll9
此快照首次捕获于
2023/10/23 04:54
2 年前
此快照最后确认于
2023/11/03 05:19
2 年前
查看原帖
CPP
#include<iostream>
using namespace std;
long long n,m=0;
int xh[1000001];
char x[100001];

char a[10000001];
char y='W';
bool d[1000001];

int main(){ 
    xh['W']=1,xh['B']=2,xh['R']=3;
	x[1]='W';
    x[2]='B';
    x[3]='R';
	d['W']=0,d['R']=0,d['B']=0;
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>a[i];
		if(d[a[i]]==0&&a[i]==y) m+=0;
		else if(d[a[i]]==1&&a[i]==y) m+=1;
		else if(xh[a[i]]<=xh[y]){
			d[a[i]]=0;
			m++;
		} 
		else if(xh[a[i]]>xh[y]){
		    if(d[a[i]]==1){
				m++;
			}
			for(int j=xh[y];x[j]!=a[i];j++){
			    if(d[x[j]]==0){
			        	m++;
			        	d[x[j]]=1;
					} 
		    }
			}
		y=a[i]; 
	}
	cout<<m;
	return 0;
}

回复

6 条回复,欢迎继续交流。

正在加载回复...