제출 #1307114

#제출 시각아이디문제언어결과실행 시간메모리
1307114fafnirPaint By Numbers (IOI16_paint)C++20
32 / 100
1 ms352 KiB
#include <bits/stdc++.h>
using namespace std;

#include "paint.h"

string solve_puzzle(string s, vector<int> c) {
    int N = s.length(), K = c.size();
    vector<int> L(K), R(K);

    L[0] = 0;
    for (int i = 1; i < K; i++) L[i] = L[i-1] + c[i-1] + 1;

    R[K-1] = N - c[K-1];
    for (int i = K-2; i >= 0; i--) R[i] = R[i+1] - c[i] - 1;

    vector<bool> canX(N, false), canW(N, false);
    
    for (int i = 0; i < N; i++) {
        bool coveredByAll = false;
        for (int j = 0; j < K; j++) {
            if (i >= R[j] && i < L[j] + c[j]) coveredByAll = true;
        }
        if (!coveredByAll) canW[i] = true;
    }

    for (int j = 0; j < K; j++) {
        for (int i = L[j]; i <= R[j] + c[j] - 1; i++) {
            if (i >= L[j] && i < R[j] + c[j]) canX[i] = true;
        }
    }

    vector<bool> mustX(N, false);
    for (int j = 0; j < K; j++) {
        for (int i = R[j]; i < L[j] + c[j]; i++) mustX[i] = true;
    }

    string res = "";
    for (int i = 0; i < N; i++) {
        if (mustX[i]) res += 'X';
        else if (!canX[i]) res += '_';
        else res += '?';
    }
    return res;
}

컴파일 시 표준 에러 (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...