Submission #54749

#TimeUsernameProblemLanguageResultExecution timeMemory
54749luciocfMartian DNA (IOI16_dna)C++14
36 / 100
25 ms640 KiB
#include <bits/stdc++.h>
#include "dna.h"

using namespace std;

int n;
string aux;

string get(int k)
{
    string ans = "";
    for (int i = 1; i <= k; i++)
        ans += "0";
    return ans;
}

string get2(int k)
{
    string ans = "";
    for (int i = 0; i < k; i++)
        ans += aux[i];
    return ans;
}

int busca(void)
{
    int ini = 1, fim = n;
    while (ini <= fim)
    {
        int mid = (ini+fim)>>1;

        if (make_test(get(mid))) ini = mid+1;
        else fim = mid-1;
    }
    return fim;
}

int busca2(void)
{
    int ini = 1, fim = n;
    while (ini <= fim)
    {
        int mid = (ini+fim)>>1;

        if (make_test(get2(mid))) ini = mid+1;
        else fim = mid-1;
    }
    return fim;
}

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

    int size = 0;
    string s = "";

    if (!make_test("0"))
    {
        for (int i = 1; i <= n; i++) s += "1";
        return s;
    }

    int qtd = busca();
    size = qtd;
    aux = get(qtd);

    while (size < n)
    {
        if (make_test(aux+"0")) aux += "0";
        else aux += "1";
        size++;
    }
    int pos = busca2();
    size = pos;
    s = get2(pos);

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

Compilation message (stderr)

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