답안 #775343

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
775343 2023-07-06T09:52:46 Z anha3k25cvp Martian DNA (IOI16_dna) C++14
0 / 100
1000 ms 2336 KB
#include <bits/stdc++.h>
#include "dna.h"

using namespace std;

string del(string S, int len) {
    string T;
    for (int i = 0; i + len < S.size(); i ++)
        T += S[i];
    return T;
}

string analyse(int n, int t) {
    int lo = 0, hi = n;
    while (lo < hi) {
        int mid = (lo + hi + 1) / 2;
        string S;
        for (int i = 1; i <= mid; i ++)
            S += '0';
        int val = make_test(S);
        if (val)
            lo = mid;
        else
            hi = mid - 1;
    }
    string ans;
    for (int i = 1; i <= lo; i ++)
        ans += '0';
    int check = 1, l = lo, cnt = lo;
    n -= l;
    while (1) {
        if (check) {
            string S = ans;
            S += '1';
            int add_right = make_test(S);
            if (!add_right) {
                if (cnt < l) {
                    ans += '0';
                    cnt ++;
                    n --;
                    continue;
                }
                lo = 0; hi = l;
                while (lo < hi) {
                    int mid = (lo + hi) / 2;
                    S = del(ans, mid);
                    int val = make_test(S);
                    if (val)
                        hi = mid;
                    else
                        lo = mid + 1;
                }
                ans = del(ans, lo);
                n += lo;
                check = 0;
            }
            else {
                ans += '1';
                n --;
                cnt = 0;
            }
        }
        else {
            n --;
            string S = "1";
            S += ans;
            int add_left = make_test(S);
            if (add_left)
                ans = '1' + ans;
            else
                ans = '0' + ans;
            if (!n)
                break;
        }
    }
    return ans;
}

Compilation message

dna.cpp: In function 'std::string del(std::string, int)':
dna.cpp:8:29: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    8 |     for (int i = 0; i + len < S.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()) {
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1090 ms 2336 KB Time limit exceeded
2 Execution timed out 1087 ms 628 KB Time limit exceeded
3 Execution timed out 1090 ms 636 KB Time limit exceeded
4 Execution timed out 1084 ms 628 KB Time limit exceeded
5 Correct 0 ms 212 KB Output is correct
6 Execution timed out 1093 ms 628 KB Time limit exceeded
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Execution timed out 1057 ms 708 KB Time limit exceeded
10 Correct 0 ms 212 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Execution timed out 1087 ms 620 KB Time limit exceeded
13 Correct 1 ms 212 KB Output is correct
14 Execution timed out 1061 ms 640 KB Time limit exceeded
15 Execution timed out 1079 ms 620 KB Time limit exceeded
16 Execution timed out 1082 ms 672 KB Time limit exceeded
17 Correct 0 ms 212 KB Output is correct
18 Execution timed out 1078 ms 688 KB Time limit exceeded
19 Execution timed out 1087 ms 628 KB Time limit exceeded
20 Correct 1 ms 212 KB Output is correct
21 Correct 0 ms 212 KB Output is correct
22 Execution timed out 1087 ms 632 KB Time limit exceeded
23 Execution timed out 1084 ms 628 KB Time limit exceeded
24 Correct 1 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1070 ms 628 KB Time limit exceeded
2 Execution timed out 1074 ms 672 KB Time limit exceeded
3 Execution timed out 1084 ms 632 KB Time limit exceeded
4 Execution timed out 1086 ms 820 KB Time limit exceeded
5 Correct 0 ms 212 KB Output is correct
6 Execution timed out 1084 ms 724 KB Time limit exceeded
7 Correct 0 ms 212 KB Output is correct
8 Execution timed out 1090 ms 668 KB Time limit exceeded
9 Execution timed out 1088 ms 632 KB Time limit exceeded
10 Correct 0 ms 212 KB Output is correct
11 Execution timed out 1090 ms 624 KB Time limit exceeded
12 Correct 0 ms 212 KB Output is correct
13 Correct 0 ms 212 KB Output is correct
14 Correct 0 ms 212 KB Output is correct
15 Correct 0 ms 212 KB Output is correct
16 Correct 0 ms 212 KB Output is correct
17 Correct 0 ms 212 KB Output is correct
18 Correct 0 ms 212 KB Output is correct
19 Correct 0 ms 212 KB Output is correct
20 Correct 0 ms 212 KB Output is correct
21 Correct 0 ms 212 KB Output is correct
22 Execution timed out 1085 ms 660 KB Time limit exceeded
23 Correct 0 ms 212 KB Output is correct
24 Execution timed out 1075 ms 748 KB Time limit exceeded
25 Execution timed out 1084 ms 620 KB Time limit exceeded
26 Execution timed out 1092 ms 688 KB Time limit exceeded
27 Correct 0 ms 212 KB Output is correct
28 Correct 0 ms 212 KB Output is correct
29 Correct 1 ms 212 KB Output is correct
30 Correct 0 ms 212 KB Output is correct
31 Correct 0 ms 212 KB Output is correct
32 Correct 1 ms 212 KB Output is correct
33 Execution timed out 1084 ms 756 KB Time limit exceeded
34 Correct 0 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1073 ms 624 KB Time limit exceeded
2 Execution timed out 1083 ms 728 KB Time limit exceeded
3 Execution timed out 1087 ms 636 KB Time limit exceeded
4 Execution timed out 1081 ms 632 KB Time limit exceeded
5 Correct 0 ms 212 KB Output is correct
6 Execution timed out 1086 ms 796 KB Time limit exceeded
7 Correct 0 ms 212 KB Output is correct
8 Execution timed out 1095 ms 872 KB Time limit exceeded
9 Execution timed out 1080 ms 696 KB Time limit exceeded
10 Correct 0 ms 212 KB Output is correct
11 Execution timed out 1087 ms 664 KB Time limit exceeded
12 Execution timed out 1077 ms 744 KB Time limit exceeded
13 Correct 0 ms 212 KB Output is correct
14 Execution timed out 1074 ms 624 KB Time limit exceeded
15 Correct 1 ms 212 KB Output is correct
16 Correct 1 ms 212 KB Output is correct
17 Correct 0 ms 212 KB Output is correct
18 Correct 1 ms 212 KB Output is correct
19 Correct 0 ms 212 KB Output is correct
20 Correct 0 ms 212 KB Output is correct
21 Correct 0 ms 212 KB Output is correct
22 Correct 7 ms 384 KB Output is correct
23 Correct 8 ms 408 KB Output is correct
24 Correct 7 ms 340 KB Output is correct
25 Correct 9 ms 340 KB Output is correct
26 Correct 9 ms 348 KB Output is correct
27 Execution timed out 1085 ms 600 KB Time limit exceeded
28 Correct 5 ms 340 KB Output is correct
29 Execution timed out 1084 ms 516 KB Time limit exceeded
30 Execution timed out 1085 ms 568 KB Time limit exceeded
31 Execution timed out 1075 ms 568 KB Time limit exceeded
32 Correct 1 ms 212 KB Output is correct
33 Correct 7 ms 400 KB Output is correct
34 Correct 7 ms 372 KB Output is correct
35 Correct 6 ms 340 KB Output is correct
36 Correct 7 ms 404 KB Output is correct
37 Correct 6 ms 340 KB Output is correct
38 Execution timed out 1091 ms 560 KB Time limit exceeded
39 Correct 4 ms 384 KB Output is correct