제출 #979907

#제출 시각아이디문제언어결과실행 시간메모리
979907NoMercyMartian DNA (IOI16_dna)C++17
11 / 100
65 ms760 KiB
#include "dna.h"

#include <cstdlib>
#include <bits/stdc++.h>

using namespace std;

string analyse(int n, int t) {
    string res;
    int ind = 1;
    while ((int)res.size() < n) {
        int lo = 0 , hi = n - (int)res.size() , best = -1;
        while (lo <= hi) {
            int mid = (lo + hi) / 2;
            string tmp = res;
            for (int i = 0;i <= mid;i ++) {
                tmp += (ind + '0');
            }
            if (make_test(tmp) == true) {
                lo = mid + 1;
                best = mid;
            } else {
                hi = mid - 1;
            }
        }
        if (best == -1) {
            break;
        }
        for (int i = 0;i <= best;i ++) {
            res += (ind + '0');
        }
        ind = 1 - ind;
    }
    ind = 0;
    while ((int)res.size() < n) {
        int lo = 0 , hi = n - (int)res.size() , best = -1;
        while (lo <= hi) {
            int mid = (lo + hi) / 2;
            string tmp;
            for (int i = 0;i <= mid;i ++) {
                tmp += (ind + '0');
            }
            for (int i = 0;i < res.size();i ++) {
                tmp += res[i];
            }
            if (make_test(tmp) == true) {
                lo = mid + 1;
                best = mid;
            } else {
                hi = mid - 1;
            }
        }
        if (best == -1) {
            break;
        }
        for (int i = 0;i <= best;i ++) {
            res = char(ind + '0') + res;
        }
        ind = 1 - ind;
    }
    return res;
}                       

컴파일 시 표준 에러 (stderr) 메시지

dna.cpp: In function 'std::string analyse(int, int)':
dna.cpp:43:30: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   43 |             for (int i = 0;i < res.size();i ++) {
      |                            ~~^~~~~~~~~~~~
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...