Submission #1266844

#TimeUsernameProblemLanguageResultExecution timeMemory
1266844vtnooPaint By Numbers (IOI16_paint)C++20
10 / 100
2092 ms328 KiB
#include <bits/stdc++.h>

using namespace std;

const int MAXN=100;
int on[MAXN], suff[MAXN];
int n,m,tot;
vector<int> b;

void dfs(const string &s, const vector<int> &c, int j, int start){
    if(j==m){
        int jj=0;
        tot++;
        for(auto pos:b){
            for(int i=0;i<c[jj];i++){
                on[pos+i]++;
            }
            jj++;
        }
        return;
    }
    if(start>=n)return;
    if(n-start<suff[j]+(m-(j+1)))return;
    for(int i=start;i<n;i++){
        if(i+c[j]-1<n){
            b.push_back(i);
            dfs(s,c,j+1,i+c[j]+1);
            b.pop_back();
        }
    }
}

std::string solve_puzzle(std::string s, std::vector<int> c){
    n=s.size(), m=c.size(), tot=0;
    suff[m-1]=c.back();
    for(int i=m-2;i>=0;i--){
        suff[i]=suff[i+1]+c[i];
    }
    dfs(s, c, 0, 0);
    string ret="";
    for(int i=0;i<n;i++){
        if(on[i]==tot){
            ret+='X';
        }else if(on[i]==0){
            ret+='_';
        }else ret+='?';
    }
    return ret;
}

Compilation message (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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...