Submission #1319748

#TimeUsernameProblemLanguageResultExecution timeMemory
1319748aaaaaaaaHidden Sequence (info1cup18_hidden)C++20
34 / 100
2 ms444 KiB
#include<bits/stdc++.h>
#include "grader.h"

using namespace std;

vector < int > findSequence (int N)
{
    vector < int > answer (N, 0);

    auto ask = [&](string str) -> int {
        vector<int> check;
        for(auto it : str) check.push_back(it - '0');
        bool ok = isSubsequence(check);
        if(ok){
            if((int) check.size() == N) {
                answer = check;
                return 2;
            }
            return 1;
        }
        return 0;
    };

    int st = 1, en = N, ones = 0;

    while(st <= en){
        int mid = st + (en - st) / 2;
        string all_ones(mid, '1');
        int res = ask(all_ones);
        if(res == 0) {
            en = mid - 1;
        }else if(res == 2){
            return answer;
        }else{
            ones = mid;
            st = mid + 1;
        }
    }

    int zeros = N - ones;

    if(ones < zeros){
        string ans(ones, '1');
        for(int i = 0, j = 0; i <= (int) ans.size(); ++i, ++j){
            string nans = ans;
            nans.insert(nans.begin() + j, '0');
            int res = ask(nans);
            if(res == 2) {
                return answer;
            }
            if(res == 1){
                --i;
                ans = nans;
            }
        }
    }else{
        string ans(zeros, '0');
         for(int i = 0, j = 0; i <= (int) ans.size(); ++i, ++j){
            string nans = ans;
            nans.insert(nans.begin() + j, '1');
            int res = ask(nans);
            if(res == 2) {
                return answer;
            }
            if(res == 1){
                --i;
                ans = nans;
            }
        }
    }


    return {-1};
}

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...