답안 #689868

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
689868 2023-01-29T15:23:59 Z alexdd Hidden Sequence (info1cup18_hidden) C++17
0 / 100
18 ms 300 KB
#include<bits/stdc++.h>
#include "grader.h"

using namespace std;
int n;
int totx,toty;
int suff[205];///suff[i] = cate y-uri exista dupa al i-lea x

vector<int> solve(int x, int y)///avem mai putine x-uri decat y-uri
{
    vector<int> allx;
    for(int i=1;i<=(n+1)/2;i++)
        allx.push_back(x);
    for(int i=(n+1)/2;i>=0;i--)
    {
        if(isSubsequence(allx))
        {
            totx=i;
            toty=n-i;
            break;
        }
        allx.pop_back();
    }
    if(totx==0)
    {
        allx.clear();
        for(int i=1;i<=n;i++)
            allx.push_back(y);
        return allx;
    }
    vector<int> aux;
    for(int i=totx;i>0;i--)
    {
        ///calc suff[i]
        if(i+suff[i+1]>totx)///punem x-uri dupa
        {
            ///folosim totx + cnty
            aux.clear();
            for(int j=1;j<=totx;j++)
                aux.push_back(x);
            suff[i]=0;
            for(int j=1;j<=toty;j++)
            {
                aux.insert(aux.begin()+i,y);
                if(!isSubsequence(aux))
                    break;
                suff[i]=j;
            }
            suff[i]+=suff[i+1];
        }
        else///nu punem nimic dupa
        {
            ///folosim i + cnty + suff[i+1]
            aux.clear();
            for(int j=1;j<=i;j++)
                aux.push_back(x);
            suff[i]=0;
            for(int j=1;j<=toty;j++)
            {
                aux.push_back(y);
                if(!isSubsequence(aux))
                    break;
                suff[i]=j;
            }
        }
    }
    suff[0] = toty - suff[1];
    vector<int> sol;
    for(int i=0;i<=totx;i++)
    {
        for(int j=1;j<=suff[i]-suff[i+1];j++)
            sol.push_back(y);
        if(i<totx)
            sol.push_back(x);
    }
    return sol;
}

vector<int>findSequence(int N)
{
    n=N;
    vector<int> all0;
    for(int i=1;i<=(n+1)/2;i++)
    {
        all0.push_back(0);
    }
    if(!isSubsequence(all0))
        return solve(0,1);
    else
        return solve(1,0);
}
/**

presupunem ca exista mai putine 0-uri decat 1-uri





*/

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 Incorrect 1 ms 208 KB Output is not correct: The length of the returned sequence is not N
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Partially correct 15 ms 300 KB Output is partially correct: Maximum length of a query = 85
2 Incorrect 18 ms 280 KB Output is not correct: The length of the returned sequence is not N
3 Halted 0 ms 0 KB -