Submission #66470

#TimeUsernameProblemLanguageResultExecution timeMemory
66470thiago4532Martian DNA (IOI16_dna)C++17
0 / 100
18 ms1140 KiB
#include "dna.h"
#include <bits/stdc++.h>
#define zz(x) string(x, '0')

using namespace std;
int n;
string str;



int buscab(){
    int ini=0, fim=n+1, meio;
    while(fim - ini > 1){
        meio = (ini + fim) >> 1;

        string s = zz(meio);

        if(make_test(s)) ini = meio;
        else fim = meio;
    }
    return ini;
}

int buscab2(){
    int ini=0, fim=str.size(), meio;
    while(fim - ini > 1){
        meio = (ini + fim) >> 1;

        string s = str.substr(0, meio);

        if(make_test(s)) ini = meio;
        else fim = meio;
    }
    return ini;
}

string analyse(int k, int t){
    n = k;

    str = zz(buscab());
    int qtd = str.size();

    while(str.size() < n){
        if(make_test(str+"1")){
            str += "1";
            continue;
        }

        str += "0";
        int x=0;

        for(int i=str.size()-1;i>=0;i--){
            if(str[i] == '1') break;
            ++x;
        }
        if(x > qtd) break;
    }

    str = str.substr(0, buscab2());

    while(str.size() < n){
        if(make_test("0"+str)) str = "0"+str;
        else str = "1"+str;
    }
    return str;
}

Compilation message (stderr)

dna.cpp: In function 'std::__cxx11::string analyse(int, int)':
dna.cpp:43:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while(str.size() < n){
           ~~~~~~~~~~~^~~
dna.cpp:61:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while(str.size() < n){
           ~~~~~~~~~~~^~~
grader.cpp: In function 'bool make_test(std::__cxx11::string)':
grader.cpp:14:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 0; i < p.size(); i++) {
                  ~~^~~~~~~~~~
grader.cpp:23:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 1; i <= ss.size(); i++) {
                  ~~^~~~~~~~~~~~
grader.cpp:28:13: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if (pr[i] == p.size()) {
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...