Submission #108386

#TimeUsernameProblemLanguageResultExecution timeMemory
108386PeppaPigMartian DNA (IOI16_dna)C++14
0 / 100
15 ms512 KiB
#include "dna.h"
#include <bits/stdc++.h>

using namespace std;

string analyse(int n, int t) {
    int l = 1, r = n;
    while(l < r) {
        int m = (l + r + 1) >> 1;
        if(make_test(string(m, '0'))) l = m;
        else r = m-1;
    }

    string ret(l, '0');
    auto zero = [&](string a) {
        int ret = 0;
        for(int i = a.length()-1; ~i; i--) {
            if(a[i] != '0') break;
            ++ret;
        }
        return ret;
    };
    while(zero(ret) <= l) {
        if(make_test(ret + '1')) ret += '1';
        else ret += '0';
    }

    l = 1, r = n;
    while(l < r) {
        int m = (l + r + 1) >> 1;
        if(make_test(ret.substr(0, m))) l = m;
        else r = m-1;
    }
    ret = ret.substr(0, l);
    while(ret.length() != n) {
        if(make_test('1' + ret)) ret = '1' + ret;
        else ret = '0' + ret;
    }
    return ret;
}

Compilation message (stderr)

dna.cpp: In function 'std::__cxx11::string analyse(int, int)':
dna.cpp:35:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while(ret.length() != 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...