답안 #527970

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
527970 2022-02-18T21:30:34 Z tabr Martian DNA (IOI16_dna) C++17
컴파일 오류
0 ms 0 KB
#include <bits/stdc++.h>
using namespace std;
#ifdef tabr
#include "library/debug.cpp"
#else
#define debug(...)
#endif

#ifdef tabr
function<bool(string)> make_test;
#else
#include "dna.h"
#endif

mt19937 rng((unsigned int) chrono::steady_clock::now().time_since_epoch().count());

int rand_int(int a, int b) {  // [a, b]
    return uniform_int_distribution<int>(a, b)(rng);
}

string analyse(int n, int) {
    string ans;
    int lst = -1;
    for (int i = 0; i < n; i++) {
        string c = to_string(rand_int(0, 1));
        if (make_test(ans + c)) {
            ans += c;
            lst = i;
        } else {
            ans += to_string(c[0] ^ '0' ^ '1');
        }
        if (lst + 15 < i) {
            if (make_test(ans)) {
                lst = i;
                continue;
            }
            int low = lst + 1;
            int high = (int) ans.size();
            while (high - low > 1) {
                int mid = (high + low) >> 1;
                if (make_test(ans.substr(mid)) {
                    low = mid;
                } else {
                    high = mid;
                }
            }
            ans.resize(low);
            lst = low - 1;
            break;
        }
    }
    for (int i = (int) ans.size(); i < n; i++) {
        string c = to_string(rand_int(0, 1));
        if (make_test(c + ans)) {
            ans = c + ans;
        } else {
            ans = c + ans;
        }
    }
    return ans;
}

#ifdef tabr
int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    return 0;
}
#endif

Compilation message

dna.cpp: In function 'std::string analyse(int, int)':
dna.cpp:41:47: error: expected ')' before '{' token
   41 |                 if (make_test(ans.substr(mid)) {
      |                    ~                          ^~
      |                                               )
dna.cpp:46:13: error: expected primary-expression before '}' token
   46 |             }
      |             ^
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()) {