#include "paint.h"
#include<bits/stdc++.h>
using namespace std;
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
#define ll long long
#define ordered_set tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update>
#define fall(i,a,b) for(int i=a;i<=b;i++)
#define rfall(i,a,b) for(int i=a;i>=b;i--)
#define pb push_back
#define sz(x) (int)x.size()
std::string solve_puzzle(std::string s, std::vector<int> c) {
int n=sz(s),k=sz(c);
vector<vector<int>> dp(n+1,vector<int>(k+1)),dp2(n+1,vector<int>(k+1)),z(n+1,vector<int>(k+1)),z2(n+1,vector<int>(k+1));
vector<int> pref(n+1),cank(n+2),canp(n+2);
pref[0]=0;
fall(i,1,n){
pref[i]=pref[i-1];
if(s[i-1]=='_') pref[i]=i;
}
dp2[0][0]=1;
fall(i,1,n){ //índice do cara e o número de blocos "fechados" que temos até o momento
fall(j,0,k){
dp2[i][j]=dp2[i-1][j];
if(j!=0) dp2[i][j]|=dp[i-1][j-1];
if(s[i-1]=='X') dp2[i][j]=0;
if(j!=k && pref[i]<=i-c[j]) dp[i][j]=dp2[i-c[j]][j];
}
}
z[n][k-1]=dp[n][k-1];
z2[n][k]=dp2[n][k];
rfall(i,n,1){
fall(j,0,k){
if(dp[i][j] && z[i][j]==1){
cank[i-c[j]+1]++;
cank[i+1]--;
z2[i-c[j]][j]=1;
}
if(dp2[i][j] && z2[i][j]){
canp[i]=1;
z2[i-1][j]=1;
if(j) z[i-1][j-1]=1;
}
}
}
string ans="";
fall(i,1,n){
cank[i]+=cank[i-1];
if(cank[i] && canp[i]) ans+="?";
else if(cank[i]) ans+="X";
else ans+="_";
}
return ans;
}
컴파일 시 표준 에러 (stderr) 메시지
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... |