Submission #795742

#TimeUsernameProblemLanguageResultExecution timeMemory
795742MalixPaint By Numbers (IOI16_paint)C++14
0 / 100
1 ms312 KiB
#include "paint.h"
#include <bits/stdc++.h>

using namespace std;

#include <cstdlib>

vector<int> cross;
vector<int> line;
vector<int> cs;
int n,k;

int update_grid(int a, int b){

    if(b >= k || a+cs[b]>=n)return 0;

    for(int i = 0; i < cs[b]; i++){
        cross[a+i] = 1;
    }
    line[a+cs[b]] = 1;

    update_grid(a+cs[b]+1, b+1);

    return 0;
}

std::string solve_puzzle(std::string s, std::vector<int> c) {

    n = s.size();
    k = c.size();
    cs = c;

    cross.resize(n, 0);
    line.resize(n, 0);

    update_grid(0, 0);

    string ans;
    for(int i = 0; i < n; i++){
        if(cross[i] == 1 && line[i] == 1)ans.push_back(63);
        else if(cross[i]==1)ans.push_back(88);
        else ans.push_back(95);
    }

    return ans;
}
#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...