답안 #261908

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
261908 2020-08-12T07:41:53 Z thecodingwizard Hidden Sequence (info1cup18_hidden) C++11
0 / 100
56 ms 256 KB
#include<bits/stdc++.h>
#include "grader.h"

using namespace std;

bool qry(int zeroes, int ones, bool rev = false) {
    vector<int> v;
    for (int i = 0; i < zeroes; i++) {
        v.push_back(0);
    }
    for (int j = 0; j < ones; j++) {
        v.push_back(1);
    }
    if (rev) reverse(v.begin(), v.end());
    return isSubsequence(v);
}

vector<int> findSequence (int N)
{
    int numZeroes = 1, numOnes = 1;
    for (; numZeroes <= N/2+1; numZeroes++) {
        if (qry(numZeroes, 0)) {
            continue;
        } else {
            break;
        }
    }
    numZeroes--;
    if (numZeroes == N/2+1) {
        for (; numOnes <= N/2+1; numOnes++) {
            if (qry(0, numOnes, true)) {
                continue;
            } else {
                break;
            }
        }
        numOnes--;
        numZeroes = N - numOnes;
    } else {
        numOnes = N - numZeroes;
    }

    vector<int> ans;
    int usedZeroes = 0;

    for (int i = 0; i < numOnes; i++) {
        int newZeroes = 0;
        int numCanFit = 0;
        for (int j = 1; j <= numZeroes - usedZeroes; j++) {
            if (i+1 + j <= N/2+1) {
                if (qry(i+1, j, true)) {
                    numCanFit++;
                } else {
                    break;
                }
            } else {
                numCanFit = -1;
                if (qry(usedZeroes + j, numOnes - i)) {
                    newZeroes++;
                } else {
                    break;
                }
            }
        }
        if (numCanFit != -1) {
            newZeroes = (numZeroes - usedZeroes) - numCanFit;
        }
        for (int i = 0; i < newZeroes; i++) {
            ans.push_back(0);
        }
        ans.push_back(1);
        usedZeroes += newZeroes;
    }

    while ((int)ans.size() != N) {
        ans.push_back(0);
    }

    return ans;
}

Compilation message

grader.cpp: In function 'int main()':
grader.cpp:28:43: warning: format '%d' expects argument of type 'int', but argument 3 has type 'std::vector<int>::size_type {aka long unsigned int}' [-Wformat=]
     fprintf (fifo_out, "%d\n", ans.size ());
                                ~~~~~~~~~~~^
grader.cpp:29:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i=0; i<ans.size () && i < N; i++)
                   ~^~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 256 KB Output is not correct: The returned sequence does not match the hidden one
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 56 ms 256 KB Output is not correct: The returned sequence does not match the hidden one
2 Halted 0 ms 0 KB -