제출 #114159

#제출 시각아이디문제언어결과실행 시간메모리
114159IVIosabMartian DNA (IOI16_dna)C++17
100 / 100
14 ms412 KiB
#include "dna.h"
#include <bits/stdc++.h>

using namespace std;

string analyse(int n, int t) {
    int s=0,e=n;
    while(s<e){
        int mid=s+(e-s+1)/2;
        string str="";
        for(int i=0;i<mid;i++){
            str+='0';
        }
        if(make_test(str)){
            s=mid;
        }
        else{
            e=mid-1;
        }
    }
    if(s==0){
        string tcur="";
        for(int i=0;i<n;i++){
            tcur+="1";
        }
        return tcur;
    }
    string cur=string(s,'0'),tcur;
    int cnt=0;
    while(true){
        if(cnt>s){
            break;
        }
        if(make_test(cur+"1")){
            cnt=0;
            cur+="1";
            tcur=cur;
        }
        else{
            cnt++;
            cur+="0";
        }
    }
    e=s;
    s=0;
    while(s<e){
        int mid=s+(e-s+1)/2;
        cur=tcur;
        for(int i=0;i<mid;i++){
            cur+="0";
        }
        if(make_test(cur)){
            s=mid;
        }
        else{
            e=mid-1;
        }
    }
    for(int i=0;i<s;i++){
        tcur+="0";
    }
    while(tcur.size()<n){
        if(make_test("1"+tcur)){
            tcur="1"+tcur;
        }
        else{
            tcur="0"+tcur;
        }
    }
    return tcur;
}                       

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

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