Submission #1320807

#TimeUsernameProblemLanguageResultExecution timeMemory
1320807yoshi_33550336Hidden Sequence (info1cup18_hidden)C++20
0 / 100
2 ms416 KiB
#include "grader.h"
using namespace std;
vector<int> findSequence(int n)
{
    int n_zero, n_one;
    for (int i = 1; i <= n / 2 + 1; i++)
    {
        vector<int> zeros(i), ones(i, 1);
        if (!isSubsequence(zeros))
        {
            n_zero = i - 1;
            n_one = n - n_zero;
            break;
        }
        if (!isSubsequence(ones))
        {
            n_one = i - 1;
            n_zero = n - n_one;
            break;
        }
    }
    vector<int> rc;
    if (n_zero < n_one)
    {
        vector<int> oneslengths;
        for (int zerosAfter = n_zero; zerosAfter >= 0; zerosAfter--)
        {
            bool ck = 0;
            for (int ones = 1; ones <= n_one / 2; ones++)
            {
                vector<int> a(n_zero - zerosAfter);
                for (int _ = 0; _ < ones; _++)
                    a.push_back(1);
                for (int i = 0; i < zerosAfter; i++)
                    a.push_back(0);
                if (!isSubsequence(a))
                {
                    n_one -= ones - 1;
                    oneslengths.push_back(ones - 1);
                    ck = 1;
                    break;
                }
            }
            if (!ck)
                oneslengths.push_back(-1);
        }
        for (int zerosAfter = n_zero; zerosAfter >= 0; zerosAfter--)
        {
            int k = oneslengths[n_zero - zerosAfter];
            if (k == -1)
                k = n_one;
            for (int i = 0; i < k; i++)
                rc.push_back(1);
            if (zerosAfter)
                rc.push_back(0);
        }
    }
    else
    {
        swap(n_zero, n_one);
        vector<int> oneslengths;
        for (int zerosAfter = n_zero; zerosAfter >= 0; zerosAfter--)
        {
            bool ck = 0;
            for (int ones = 1; ones <= n_one / 2; ones++)
            {
                vector<int> a(n_zero - zerosAfter, 1);
                for (int _ = 0; _ < ones; _++)
                    a.push_back(0);
                for (int i = 0; i < zerosAfter; i++)
                    a.push_back(1);
                if (!isSubsequence(a))
                {
                    n_one -= ones - 1;
                    oneslengths.push_back(ones - 1);
                    ck = 1;
                    break;
                }
            }
            if (!ck)
                oneslengths.push_back(-1);
        }
        for (int zerosAfter = n_zero; zerosAfter >= 0; zerosAfter--)
        {
            int k = oneslengths[n_zero - zerosAfter];
            if (k == -1)
                k = n_one;
            for (int i = 0; i < k; i++)
                rc.push_back(0);
            if (zerosAfter)
                rc.push_back(1);
        }
    }
    return rc;
}

Compilation message (stderr)

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
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...