제출 #364389

#제출 시각아이디문제언어결과실행 시간메모리
364389arujbansalPaint By Numbers (IOI16_paint)C++17
32 / 100
1 ms384 KiB
#include <iostream>
#include <random>
#include <chrono>
#include <algorithm>
#include <utility>
#include <set>
#include <map>
#include <queue>

using namespace std;

void dbg_out() { cerr << endl; }
template<typename Head, typename... Tail>
void dbg_out(Head H, Tail... T) { cerr << ' ' << H; dbg_out(T...); }
#define dbg(...) cerr << "(" << #__VA_ARGS__ << "):", dbg_out(__VA_ARGS__)

#define rng_init mt19937 rng(chrono::steady_clock::now().time_since_epock().count())
#define rng_seed(x) mt19937 rng(x)
#define all(x) (x).begin(), (x).end()
#define sz(x) (int) (x).size()
// #define int long long

const int MXN = 1e5 + 1, INF = 1e9 + 5;

string solve_puzzle(string s, vector<int> c) {
    int N = sz(s),  K = sz(c);

    deque<char> dq;

    for (int i = 0; i < K; i++) {
        for (int j = 0; j < c[i]; j++)
            dq.push_back('X');

        if (i < K - 1)
            dq.push_back('_');
    }

    while (sz(dq) < N)
        dq.push_back('_');

    // for (const auto &x : dq)
    //     cout << x;

    vector<int> cnt(N, 0);

    for (int iter = 0; iter < N; iter++) {
        for (int i = 0; i < sz(dq); i++) {
            if (dq[i] == 'X') cnt[i]++;
        }

        if (dq.back() != 'X') {
            dq.push_front('_');
            dq.pop_back();
        } 
    }

    string ans;
    for (int i = 0; i < N; i++) {
        if (cnt[i] >= N) ans += 'X';
        else if (cnt[i] > 0) ans += '?';
        else ans += '_';
    }

    return ans;
}

// void solve() {
//     cout << solve_puzzle(".........", vector<int>{1, 1, 1, 1, 1});
// }

// signed main() {
//     ios_base::sync_with_stdio(false);
//     cin.tie(nullptr);

//     int TC = 1;
//     // cin >> TC;
//     while (TC--) solve();
// }
#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...