Submission #773555

#TimeUsernameProblemLanguageResultExecution timeMemory
773555ttamxPaint By Numbers (IOI16_paint)C++14
10 / 100
17 ms304 KiB
#include "paint.h"
#include <bits/stdc++.h>

using namespace std;

string solve_puzzle(string s, vector<int> c) {
    int n=s.size();
    vector<int> v(n);
    for(int i=0;i<1<<n;i++){
        int cnt=0,cur=0;
        bool ok=true;
        for(int j=0;j<n;j++){
            if(i>>j&1){
                cnt++;
            }else if(cnt>0){
                if(cur>=c.size()||c[cur]!=cnt){
                    ok=false;
                    break;
                }
                cnt=0;
                cur++;
            }
        }
        if(cnt>0){
            if(cur>=c.size()||c[cur]!=cnt){
                ok=false;
            }else{
                cur++;
            }
        }
        if(cur!=c.size())ok=false;
        if(ok){
            for(int j=0;j<n;j++){
                if(i>>j&1){
                    v[j]|=1;
                }else{
                    v[j]|=2;
                }
            }
        }
    }
    string ans="";
    for(auto x:v){
        if(x==1)ans+='X';
        if(x==2)ans+='_';
        if(x==3)ans+='?';
    }
    return ans;
}

Compilation message (stderr)

paint.cpp: In function 'std::string solve_puzzle(std::string, std::vector<int>)':
paint.cpp:16:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   16 |                 if(cur>=c.size()||c[cur]!=cnt){
      |                    ~~~^~~~~~~~~~
paint.cpp:25:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   25 |             if(cur>=c.size()||c[cur]!=cnt){
      |                ~~~^~~~~~~~~~
paint.cpp:31:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   31 |         if(cur!=c.size())ok=false;
      |            ~~~^~~~~~~~~~
#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...