Submission #34488

#TimeUsernameProblemLanguageResultExecution timeMemory
34488top34051Martian DNA (IOI16_dna)C++14
36 / 100
16 ms2652 KiB
#include "dna.h"
#include <bits/stdc++.h>
using namespace std;

string s;
map<string,int> mp;

bool ask() {
    if(mp.find(s)!=mp.end()) return mp[s];
    return mp[s] = make_test(s);
}

string analyse(int n, int t) {
    int cnt = 0, sq = sqrt(n), bad = 0;
    while(s.size()!=n) {
        s = s + '0';
        if(!ask()) s[s.size()-1] = '1';
        cnt++;
        if(cnt%sq==0) {
            while(!ask()) s.erase(s.size()-1,1), bad = 1;
            if(bad) break;
        }
    }
    while(!ask()) s.erase(s.size()-1,1);
    while(s.size()!=n) {
        s = '0' + s;
        if(!ask()) s[0] = '1';
    }
    return s;
}

Compilation message (stderr)

dna.cpp: In function 'bool ask()':
dna.cpp:10:31: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
     return mp[s] = make_test(s);
                               ^
dna.cpp: In function 'std::__cxx11::string analyse(int, int)':
dna.cpp:15:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while(s.size()!=n) {
                   ^
dna.cpp:25:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while(s.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...