Submission #51585

#TimeUsernameProblemLanguageResultExecution timeMemory
51585MatheusLealVMartian DNA (IOI16_dna)C++17
36 / 100
32 ms1556 KiB
#include "dna.h"

#include <bits/stdc++.h>

using namespace std;

string analyse(int n, int t) 
{
    string ans, S, resp;

    for(int i = 1; i <= n; i++)
    {
    	if(make_test(ans + "0")) ans += "0";

    	else ans += "1";
    }

    int ini = 0, fim = n - 1, mid, best;

    while(fim >= ini)
    {
    	mid = (ini + fim)/2;

    	string aux;

    	for(int i = 0; i <= mid; i++) aux += ans[i];

    	if(make_test(aux)) best = mid, ini = mid + 1;

    	else fim = mid - 1;
    }

    for(int i = 0; i <= best; i++) S += ans[i];

    for(int i = 1; i <= n; i++)
    {
    	if(make_test("0" + S)) S = "0" + S;

    	else S = "1" + S;
    }

    ini = 0, fim = S.size() - 1, mid, best;

    while(fim >= ini)
    {
    	mid = (ini + fim)/2;

    	string aux;

    	for(int i = mid; i < S.size(); i++) aux += S[i];

    	if(make_test(aux))
    	{    
    		best = mid;

    		fim = mid - 1;
    	}

    	else ini = mid + 1;
    }

    for(int i = best; i < S.size(); i++) resp += S[i];

    return resp;
}                       

Compilation message (stderr)

dna.cpp: In function 'std::__cxx11::string analyse(int, int)':
dna.cpp:42:39: warning: right operand of comma operator has no effect [-Wunused-value]
     ini = 0, fim = S.size() - 1, mid, best;
                                       ^~~~
dna.cpp:42:43: warning: right operand of comma operator has no effect [-Wunused-value]
     ini = 0, fim = S.size() - 1, mid, best;
                                           ^
dna.cpp:50:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
      for(int i = mid; i < S.size(); i++) aux += S[i];
                       ~~^~~~~~~~~~
dna.cpp:62:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i = best; i < S.size(); i++) resp += S[i];
                       ~~^~~~~~~~~~
dna.cpp:33:22: warning: 'best' may be used uninitialized in this function [-Wmaybe-uninitialized]
     for(int i = 0; i <= best; i++) S += ans[i];
                    ~~^~~~~~~
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...