Submission #526143

#TimeUsernameProblemLanguageResultExecution timeMemory
526143fakhouryMartian DNA (IOI16_dna)C++14
100 / 100
11 ms416 KiB
#include "dna.h" #include <iostream> #include <cstdlib> #include <string> #include <algorithm> using namespace std; string analyse(int n, int t) { srand(2139); string known, cur; bool flipped = false; auto merge = [](string& a, string b, bool flipped) { if (flipped) { reverse(b.begin(), b.end()); return b + a; } return a + b; }; auto correct = [&]() { if (flipped) { known = merge(known, cur, flipped); cur.clear(); return; } int lo = 0, hi = (int) cur.size(), mi; while(lo < hi) { mi = (lo + hi + 1) / 2; if (make_test(merge(known, cur.substr(0, mi), flipped))) lo = mi; else hi = mi - 1; } known = merge(known, cur.substr(0, lo), flipped); cur.clear(); flipped = true; }; while((int) known.size() < n) { cur += rand()%2 + '0'; if (make_test(merge(known, cur, flipped))) { known = merge(known, cur, flipped); cur.clear(); } else { cur.back() ^= '0' ^ '1'; } if (cur.size() == 16u || (int) known.size() + (int) cur.size() == n) { correct(); } } return known; }

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