#include <iostream>
using namespace std;
int ch(int x) {
switch(x) {
case 0:
return 2;
case 1:
return 0;
case 2:
return 1;
default:
return -1;
}
}
int main() {
int n;
cin>>n;
int a[100000];
for(int i=0 ;i<n ;i++) {
cin>>a[i];
}
bool f=false;
int ans=1;
int b[100000]={};
b[0]=ch(a[0]);
for(int i=1 ;i<n ;i++) {
if(a[i]==a[i-1]) {
if(f==true) {
b[i]=ch(a[i]);
ans++;
f=false;
} else {
b[i]=a[i];
f=true;
}
} else {
b[i]=ch(a[i]);
ans++;
}
}
cout<<ans<<endl;
for(int i=0 ;i<n ;i++) {
cout<<b[i]<<' ';
}
return 0;
}
瞅了半天,感觉什么错都没有,但就是0分。。