Submission #275977

#TimeUsernameProblemLanguageResultExecution timeMemory
275977brcodePaint By Numbers (IOI16_paint)C++14
10 / 100
446 ms484 KiB
#include <iostream>
#include <bits/stdc++.h>
#include "paint.h"
using namespace std;
vector<vector<int>> res;

string solve_puzzle(string s,vector<int> v1){
    int k = v1.size();
    int len = s.length();
    s = '#'+s;
    
    for(int i=0;i<(1<<len);i++){
        vector<int> tmp;
        for(int j=0;j<len;j++){
            if((1<<j)&i){
                tmp.push_back(1);
                
            }else{
                tmp.push_back(0);
                
            }
            
        }
        reverse(tmp.begin(),tmp.end());
        int ind = 0;
        bool ok = true;
        for(int j=0;j<len;j++){
            
            if(tmp[j] == 1){
                int ind2 = j+1;
                while(ind2<len && tmp[ind2] == 1){
                    ind2++;
                }
                
                if(ind2-j!=v1[ind]){
                    ok = false;
                    break;
                }
                ind++;
                j = ind2;
            }
        }
        if(ind!=k){
            continue;
        }
        if(!ok){
            continue;
        }
        res.push_back(tmp);
       
    }
    string ans = "";
    for(int i=0;i<len;i++){
        bool ones = false;
        bool zeroes = false;
        for(int j=0;j<res.size();j++){
            if(res[j][i]==1){
                ones = true;
            }else{
                zeroes = true;
            }
            
        }
        if(ones == true && zeroes == true){
            ans+='?';
        }else if(ones == true){
            ans+='X';
        }else{
            ans+='_';
        }
    }
    return ans;
}

Compilation message (stderr)

paint.cpp: In function 'std::string solve_puzzle(std::string, std::vector<int>)':
paint.cpp:56:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   56 |         for(int j=0;j<res.size();j++){
      |                     ~^~~~~~~~~~~
#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...