Submission #114159

#TimeUsernameProblemLanguageResultExecution timeMemory
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; }

Compilation message (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...