제출 #251400

#제출 시각아이디문제언어결과실행 시간메모리
251400StevenHMartian DNA (IOI16_dna)C++14
36 / 100
18 ms384 KiB
#include "dna.h"

#include <cstdlib>
#include <iostream>
#include <cmath>
using namespace std;

string analyse(int n, int t)
{

    string str = "";
    bool flag = 0;
    int cnt = 0;
    int k = sqrt(n);
    while (str.size() < n || cnt != 0)
    {
        if (flag == 0)
        {
            if (make_test(str + "0"))
                str += "0", cnt = 0;
            else
            {
                if (cnt == k)
                {
                    if (!make_test(str + "1"))
                    {
                        // bs
                        str = str.substr(0, str.size() - k);
                        for (int i = 0; i < k; i++)
                        {
                            if (make_test(str + "1"))
                                str = str + "1";
                            else
                                break;
                        }
                        flag = 1;
                        cnt = 0;
                        continue;
                    }
                    else
                    {
                        str += "1";
                        cnt = 0;
                        continue;
                    }
                }
                else
                    str += "1", cnt++;
            }
        }
        if (flag == 1)
        {
            if (make_test("0" + str))
                str = "0" + str;
            else
                str = "1" + str;
        }
        if (str.size() == n)
        {
            str = str.substr(0, str.size() - cnt);
            for (int i = 0; i < cnt; i++)
            {
                if (make_test(str + "1"))
                    str = str + "1";
                else
                    break;
            }
            flag = 1;
            cnt = 0;
        }
    }
    return str;
}

컴파일 시 표준 에러 (stderr) 메시지

dna.cpp: In function 'std::__cxx11::string analyse(int, int)':
dna.cpp:15:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while (str.size() < n || cnt != 0)
            ~~~~~~~~~~~^~~
dna.cpp:58:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         if (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...