Submission #127546

#TimeUsernameProblemLanguageResultExecution timeMemory
127546mahmoudbadawyMartian DNA (IOI16_dna)C++17
100 / 100
18 ms392 KiB
#include "dna.h" #include <bits/stdc++.h> #include <cstdlib> using namespace std; std::string analyse(int n, int t) { int st=0,en=n,cnt0=0; while(st<=en) { int mid=(st+en)/2; if(make_test(string(mid,'0'))) cnt0=mid,st=mid+1; else en=mid-1; } string ans=string(cnt0,'0'); int fail=0; while(ans.size()<n) { if(make_test(ans+"1")) { ans+="1"; fail=0; } else { ans+="0"; fail++; } if(fail>cnt0) break; } st=cnt0,en=ans.size(); int mx=cnt0; while(st<=en) { int mid=(st+en)/2; if(make_test(ans.substr(0,mid))) mx=mid,st=mid+1; else en=mid-1; } ans=ans.substr(0,mx); //cout << ans << endl; for(int i=ans.size();i<n;i++) { if(make_test("0"+ans)) ans="0"+ans; else ans="1"+ans; } return ans; }

Compilation message (stderr)

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