// Jesu juva
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned ll
#define pii pair<int,int>
#define pll pair<ll,ll>
#define vi vector<int>
#define vll vector<ll>
#define vull vector<ull>
#define vb vector<bool>
#define vpii vector<pii>
#define vpll vector<pll>
#define vvi vector<vi>
#define vvb vector<vb>
#define vvpii vector<vpii>
#define f(i,x,n) for(int i=x;i<n;i++)
#define fe(i,x,n) for (int i=x;i<=n;i++)
#define fr(i,x,n) for(int i=x;i>n;i--)
#define fre(i,x,n) for(int i=x;i>=n;i--)
#define fll(i,x,n) for (ll i=x;i<n;i++)
string dp(string s, int idx, int c[],int k, int &sz) {
if (idx >= s.length()) {
return s;
}
string w="", b="";
if (s[idx]!='X') {
if (idx+c[sz]-c[k-1]+sz-k<s.length()) {
char tmp=s[idx];
s[idx]='_';
w = dp(s,idx+1,c,k,sz);
s[idx]=tmp;
}
}
bool hitFlat=false;
if (k <= sz && s[idx]!='_') {
if (idx+c[k]-c[k-1]-1 < s.length()) {
f(i,idx,idx+c[k]-c[k-1]) {
if (s[i]!='_') s[i] = 'X';
else {
//cout<<"HITFLAT"<<endl;
hitFlat=true;
break;
}
}
if (!hitFlat) {
if (idx+c[k]-c[k-1]<s.length()) {
if (s[idx+c[k]-c[k-1]]!='X') {
s[idx+c[k]-c[k-1]] = '_';
b=dp(s,idx+c[k]-c[k-1]+1,c,k+1,sz);
}
}
else b=dp(s,idx+c[k]-c[k-1],c,k+1,sz);
}
}
}
if (b.length()+w.length()==0) {
//cout << idx<<' '<<k<<' '<<s<<' ' <<"NOTHING"<<endl<<endl;
return "";
}
else {
if (b.length()>0 && w.length()>0) {
f(i,0,s.length()) {
if (b[i]!=w[i]) {
s[i]='?';
}
else s[i]=b[i];
}
//cout << idx<<' '<<k<<' '<<s<<endl<<endl;
return s;
}
else if (b.length()>0) {
//cout << idx<<' '<<k<<' '<<b<<endl<<endl;
return b;
}
else {
//cout << idx<<' '<<k<<' '<<w<<endl<<endl;
return w;
}
}
}
string solve_puzzle(string s, vi c) {
int m=c.size();
int x[m+1]={0};
fe(i,1,m) {
x[i] = x[i-1]+c[i-1];
}
string res =dp(s,0,x,1,m);
if (res=="") {
cout<<"WHADDAHELLY "<<s<<' ';
f(i,0,m) {
cout<<c[i]<<' ';
}
cout<<endl;
}
cout<<res<<endl;
}
/*
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
vi c={3};
cout<< solve_puzzle(".X........",c);
}*/
// soli Deo gloria
Compilation message (stderr)
paint.cpp: In function 'std::string solve_puzzle(std::string, std::vector<int>)':
paint.cpp:109:1: warning: no return statement in function returning non-void [-Wreturn-type]
109 | }
| ^
paint.h:1:9: warning: #pragma once in main file
1 | #pragma once
| ^~~~
paint_c.h:1:9: warning: #pragma once in main file
1 | #pragma once
| ^~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |