제출 #1332580

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

int black[200005];
int white[200005];
int pre[104][200005];
int suf[105][200005];
int sum[2][200005];
int val[200006];
int mx[200005];
int psum[200005];
int ssum[200005];
int l[200005];

string solve_puzzle(string s, vector<int> c) {
    int k=c.size();
    int n=s.size();
    for(int i=1;i<=n;i++){
        sum[1][i]=sum[1][i-1];
        sum[2][i]=sum[2][i-1];
        if(s[i-1]=='.')val[i]=1;
        else if(s[i-1]=='_')val[i]=2,sum[2][i]++;
        else val[i]=3,sum[1][i]++;
    }
    for(int i=1;i<=k;i++)pre[0][i]=suf[0][i]=1;
    for(int i=1;i<=k;i++)l[i]=c[i-1],psum[i]=psum[i-1]+l[i]+1;
    for(int i=k;i>=1;i--)ssum[i]=ssum[i+1]+l[i]+1;
    for(int i=1;i<=k;i++){
        int l=psum[i-1]+1;
        int r=n-ssum[i+1];
        black[l]++;
        black[r+1]--;
    }
    for(int i=0;i<=k;i++){
        int l=psum[i];
        int r=n-ssum[i+1]+1;
        white[l]++;
        white[r+1]--;
    }
    string ans(n,'?');
    for(int i=1;i<=n;i++){
        black[i]+=black[i-1];
        white[i]+=white[i-1];
        if(black[i]&&white[i]){
            ans[i-1]='?';
        }else if(black[i]){
            ans[i-1]='X';
        }else{
            ans[i-1]='_';
        }
    }
    return ans;
    for(int i=1;i<=k;i++){
        /*
        for(int j=1;j<=n;j++){
            mx[j]=mx[j-1];
            if(pre[i-1][j])mx[j]=j;
        }
        for(int j=1;j<=n;j++){
            if(j>=c[i-1]){
                if(sum[2][j]-sum[2][j-c[i-1]]==0){
                    pre[i][j]=1;
                    black[j-c[i-1]+1]++;
                    black[j+1]--;
                }
            }
        }*/
    }

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