제출 #963354

#제출 시각아이디문제언어결과실행 시간메모리
963354Kalata_56Martian DNA (IOI16_dna)C++17
100 / 100
12 ms684 KiB
#include<bits/stdc++.h>
#include "dna.h"
using namespace std;
string dna;
string dna2;
string analyse(int n,int t){
    int l=0,r=n+1;
    while(l<r-1){
        //cout<<"lala"<<endl;
        int mid=(l+r)/2;
        dna="";
        for(int i=0;i<mid;i++){
            dna+="0";
        }
        if(make_test(dna)){
            l=mid;
        }else{
            r=mid;
        }
    }
    dna="";
    if(l==0){
        for(int i=0;i<n;i++){
            dna+="1";
        }
        return dna;
    }
    //cout<<"nuli\n";
    for(int i=0;i<l;i++){
        dna+="0";
    }
    //cout<<dna<<endl;
    int kolko=0;
    while(kolko<=l){
        //cout<<"kude"<<endl;
        dna+="1";
        if(make_test(dna)){
            kolko=0;
        }else{
            dna.pop_back();
            dna.push_back('0');
            kolko++;
        }
    }
    //cout<<dna<<endl;
    while(dna[dna.size()-1]=='0'){
        dna.pop_back();
    }
    l=0;
    r=n+1;
    while(l<r-1){
        int mid=(l+r)/2;
        for(int i=0;i<mid;i++){
            dna+="0";
        }
        if(make_test(dna)){
            l=mid;
        }else{
            r=mid;
        }
        for(int i=0;i<mid;i++){
            dna.pop_back();
        }
    }
    for(int i=0;i<l;i++){
        dna+="0";
    }
    //cout<<"otzad\n";
    //cout<<dna<<endl;
    for(int i=dna.size();i<n;i++){
        dna2="0"+dna;
        if(make_test(dna2)){
            dna=dna2;
        }else{
            dna="1"+dna;
        }
    }
    return dna;
}

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

grader.cpp: In function 'bool make_test(std::string)':
grader.cpp:14:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   14 |  for (int i = 0; i < p.size(); i++) {
      |                  ~~^~~~~~~~~~
grader.cpp:23:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   23 |  for (int i = 1; i <= ss.size(); i++) {
      |                  ~~^~~~~~~~~~~~
grader.cpp:28:13: warning: comparison of integer expressions of different signedness: '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'} and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   28 |   if (pr[i] == p.size()) {
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...