Submission #731593

#TimeUsernameProblemLanguageResultExecution timeMemory
731593abcvuitunggioMartian DNA (IOI16_dna)C++17
100 / 100
13 ms392 KiB
#include "dna.h" #include <cstdlib> #include <bits/stdc++.h> using namespace std; string analyse(int n, int t) { int l=0,r=n-1,kq=-1; string s; while (l<=r){ int mid=(l+r)>>1; string s2; for (int i=0;i<mid;i++) s2+='0'; if (make_test(s2)){ kq=mid; l=mid+1; } else r=mid-1; } for (int i=0;i<kq;i++) s+='0'; int cnt=0; while (s.length()<n){ if (make_test(s+'1')){ s+='1'; cnt=0; continue; } s+='0'; cnt++; if (cnt>kq) break; } l=1,r=s.length(),kq=-1; while (l<=r){ int mid=(l+r)>>1; string s2; for (int i=0;i<mid;i++) s2+=s[i]; if (make_test(s2)){ kq=mid; l=mid+1; } else r=mid-1; } if (kq<s.length()) s.erase(kq,s.length()-kq); while (s.length()<n){ if (make_test('1'+s)){ s='1'+s; continue; } s='0'+s; } return s; }

Compilation message (stderr)

dna.cpp: In function 'std::string analyse(int, int)':
dna.cpp:23:22: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   23 |     while (s.length()<n){
      |            ~~~~~~~~~~^~
dna.cpp:47:11: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |     if (kq<s.length())
      |         ~~^~~~~~~~~~~
dna.cpp:49:22: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   49 |     while (s.length()<n){
      |            ~~~~~~~~~~^~
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...