Submission #1268272

#TimeUsernameProblemLanguageResultExecution timeMemory
1268272martin_011Paint By Numbers (IOI16_paint)C++20
10 / 100
2096 ms328 KiB
#include "paint.h"
#include <cstdlib>
#include <bits/stdc++.h>

using namespace std;
typedef long long ll;
typedef vector<ll> vll;

ll n, k;
vll v;
vector<int> a;
ll f (ll ib, ll br, ll ind) {
    if (ib==k) {
        for (int i = ind; i<n; i++) v[i]++;
        return 1;
    }
    ll res = 0;
    ll i =1;
    if (ib == 0) i = 0;
    if (br < i) return 0;

    for(; i<=br; i++) {
        ll aux = f(ib+1, br - i, ind + i + a[ib]);
        if (aux >0) {
            res += aux;
            for (int j=0; j<i; j++) v[j+ind]++;
        }
    }
    return res;
}

std::string solve_puzzle(std::string s, std::vector<int> c) {
    n = s.size();
    k = c.size();
    v.assign(n, 0);
    a = c;
    ll cb = n;
    for (int i=0; i<k; i++) cb -= c[i];
    ll r = f(0, cb, 0);
    string res = "";
    for (int i=0; i<n; i++) {
        if (v[i]==0) res.push_back('X');
        else if (v[i] == r) res.push_back('_');
        else res.push_back('?');
    }
    return res;
}

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...