Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- char a[100010],sav[100010];
- int n,g,mxg=2e9,st;
- bool check=false;
- void fill(int x){
- if(a[x]!='X'||x>n){
- if(g<mxg){
- mxg=g;
- for(int i=st;i<x;i++){
- a[i]=sav[i];
- }
- }
- if(g==0){check=true;}
- return;
- }
- if(sav[x-1]!='B'&&sav[x+1]!='B'){sav[x]='B'; fill(x+1);sav[x]='X';}
- if(sav[x-1]!='W'&&sav[x+1]!='W'&&!check){sav[x]='W'; fill(x+1);sav[x]='X';}
- if(sav[x-1]!='G'&&sav[x+1]!='G'&&!check){sav[x]='G';g++; fill(x+1);sav[x]='X'; g--;}
- return;
- }
- int main(){
- scanf("%d",&n);
- for(int i=1;i<=n;i++){
- scanf(" %c",&a[i]); sav[i]=a[i];
- }
- for(int i=1;i<=n;i++){
- if(a[i]=='X'){
- g=0; mxg=2e9; st=i; check=false;
- fill(i);
- }
- }
- for(int i=1;i<=n;i++){
- printf("%c",a[i]);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement