#include "paint.h"
#include<bits/stdc++.h>
using namespace std;
int black[200005];
int white[200005];
int pre[104][200005];
int suf[105][200005];
int sum[2][200005];
int val[200006];
int mx[200005];
int psum[200005];
int ssum[200005];
int l[200005];
string solve_puzzle(string s, vector<int> c) {
int k=c.size();
int n=s.size();
for(int i=1;i<=n;i++){
sum[1][i]=sum[1][i-1];
sum[2][i]=sum[2][i-1];
if(s[i-1]=='.')val[i]=1;
else if(s[i-1]=='_')val[i]=2,sum[2][i]++;
else val[i]=3,sum[1][i]++;
}
for(int i=1;i<=k;i++)pre[0][i]=suf[0][i]=1;
for(int i=1;i<=k;i++)l[i]=c[i-1],psum[i]=psum[i-1]+l[i]+1;
for(int i=k;i>=1;i--)ssum[i]=ssum[i+1]+l[i]+1;
for(int i=1;i<=k;i++){
int l=psum[i-1]+1;
int r=n-ssum[i+1];
black[l]++;
black[r+1]--;
}
for(int i=0;i<=k;i++){
int l=psum[i];
int r=n-ssum[i+1]+1;
white[l]++;
white[r+1]--;
}
string ans(n,'?');
for(int i=1;i<=n;i++){
black[i]+=black[i-1];
white[i]+=white[i-1];
if(black[i]&&white[i]){
ans[i-1]='?';
}else if(black[i]){
ans[i-1]='X';
}else{
ans[i-1]='_';
}
}
return ans;
for(int i=1;i<=k;i++){
/*
for(int j=1;j<=n;j++){
mx[j]=mx[j-1];
if(pre[i-1][j])mx[j]=j;
}
for(int j=1;j<=n;j++){
if(j>=c[i-1]){
if(sum[2][j]-sum[2][j-c[i-1]]==0){
pre[i][j]=1;
black[j-c[i-1]+1]++;
black[j+1]--;
}
}
}*/
}
}