제출 #34487

#제출 시각아이디문제언어결과실행 시간메모리
34487top34051Martian DNA (IOI16_dna)C++14
0 / 100
13 ms2648 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);
    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);
            break;
        }
    }
    while(!ask()) s.erase(s.size()-1,1);
    while(s.size()!=n) {
        s = '0' + s;
        if(!ask()) s[0] = '1';
    }
    return s;
}

컴파일 시 표준 에러 (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...