This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "paint.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int n;
set<string> s;
vector<int> k;
void go(string str, int idx) {
if (idx == (int) k.size()) {
string add;
for(int i = 0; i < n; i++) {
if ((int) str.length() + (int) add.length() == n) {
s.insert(str+add);
return;
}
add += '_';
}
return;
}
string add;
if (idx != 0) {
add += '_';
}
for(int i = 0; i < n; i++) {
go(str+add+string(k[idx], 'X'), idx+1);
add += '_';
}
}
std::string solve_puzzle(std::string st, std::vector<int> c) {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
n = st.length();
k = c;
go("", 0);
set<char> poss[n];
for(auto i : s) {
for(int j = 0; j < n; j++) {
poss[j].insert(i[j]);
}
}
string ans;
for(auto i : poss) {
if ((int) i.size() > 1) {
ans += "?";
} else {
for(auto j : i) {
ans += j;
}
}
}
return ans;
}
# | 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... |