제출 #1327209

#제출 시각아이디문제언어결과실행 시간메모리
1327209mamabearMartian DNA (IOI16_dna)C++20
100 / 100
10 ms504 KiB
#include "dna.h"
#include <bits/stdc++.h>

using namespace std;

string analyse(int n, int t) {
    if (make_test(string(n, '1'))) {
        return string(n, '1');
    }

    int l = 1, r = n;
    while (l < r) {
        int mid = (l + r + 1) >> 1;
        if (make_test(string(mid, '0'))) {
            l = mid;
        } else {
            r = mid - 1;
        }
    }
    
    string o = string(l, '0');
    
    if (o.size() < n && !make_test(o + '1')) {
    } else {
        int cnt = 0;
        o += '1'; 
        
        while (o.size() < n && cnt <= l) {
            if (make_test(o + '1')) {
                o += '1';
                cnt = 0;
            } else {
                o += '0';
                cnt++;
            }
        }

        int trim_l = 1, trim_r = n;
        while (trim_l < trim_r) {
            int mid = (trim_l + trim_r + 1) >> 1;
            if (make_test(o.substr(0, mid))) {
                trim_l = mid;
            } else {
                trim_r = mid - 1;
            }
        }
        o = o.substr(0, trim_l);
    }

    while (o.size() < n) {
        if (make_test('0' + o)) {
            o = '0' + o;
        } else {
            o = '1' + o;
        }
    }

    return o;
}

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

dna.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...