답안 #408736

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
408736 2021-05-19T15:06:01 Z Atill83 Hidden Sequence (info1cup18_hidden) C++14
0 / 100
12 ms 420 KB
#include<bits/stdc++.h>
#include "grader.h"

using namespace std;

vector<int> findSequence(int n){
    vector<int> sorg((n + 1) / 2, 0);
    int less = 0;
    if(isSubsequence(sorg)){
        less = 1;
    }
    int idx = 0;
    while(idx <= (n + 1) / 2 && isSubsequence(vector<int>(idx, less)))
        idx++;
    idx--;
    vector<int> say(2, 0);
    say[less] = idx;
    say[!less] = n - idx;
    vector<int> onc(idx + 1, 0);

    for(int i = 1; i <= say[less]; i++){
        vector<int> srg;
        for(int j = 0; j < i; j++)
            srg.push_back(less);
        bool done = 0;
        int mx = 0;
        for(int j = 1; (j + i) <= n / 2 + 1; j++){
            srg.push_back(!less);
            if(!isSubsequence(srg)){
                done = 1;
                mx = j - 1;
                break;
            }
        }

        if(done){
            onc[i] = say[!less] - mx;
        }else{
            cerr<<"ali"<<endl;
            mx = 0;
            for(int j = 0; (j + say[less] - i + 1) <= n / 2 + 1; j++){
                srg.clear();
                for(int l = 0; l < j; l++)
                    srg.push_back(!less);
                for(int l = 0; l < say[less] - i + 1; l++)
                    srg.push_back(less);
                if(!isSubsequence(srg)){
                    done = 1;
                    mx = j - 1;
                    break;
                }
            }
            assert(done);
            onc[i] = mx;
        }
    }
    vector<int> ans;
    int ot = 0;
    for(int i = 1; i <= idx; i++){
        while(ot < onc[i]){
            ans.push_back(!less);
            ot++;
        }
        ans.push_back(less);
    }
    while(ot < say[!less]){
        ot++;
        ans.push_back(!less);
    }
    return ans;
}

Compilation message

grader.cpp: In function 'int main()':
grader.cpp:28:26: warning: format '%d' expects argument of type 'int', but argument 3 has type 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wformat=]
   28 |     fprintf (fifo_out, "%d\n", ans.size ());
      |                         ~^     ~~~~~~~~~~~
      |                          |              |
      |                          int            std::vector<int>::size_type {aka long unsigned int}
      |                         %ld
grader.cpp:29:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   29 |     for (int i=0; i<ans.size () && i < N; i++)
      |                   ~^~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 200 KB Output is correct: Maximum length of a query = 5
2 Correct 1 ms 200 KB Output is correct: Maximum length of a query = 6
3 Correct 2 ms 200 KB Output is correct: Maximum length of a query = 5
4 Correct 1 ms 200 KB Output is correct: Maximum length of a query = 5
5 Runtime error 2 ms 328 KB Execution killed with signal 6
# 결과 실행 시간 메모리 Grader output
1 Runtime error 12 ms 420 KB Execution killed with signal 6
2 Halted 0 ms 0 KB -