Submission #1292088

#TimeUsernameProblemLanguageResultExecution timeMemory
1292088jahongirFloppy (RMI20_floppy)C++20
100 / 100
162 ms3812 KiB

#include "floppy.h"
#include <bits/stdc++.h>
using namespace std;


void read_array(int subtask_id, const vector<int> &v) {
    string res = "";
    vector<int> vec;
    int n = v.size();

    for(int i = 0; i < n; i++){
        while(!vec.empty() && v[vec.back()] < v[i]){
            vec.pop_back(); res += "0";
        }
        vec.push_back(i);
        res += "1";
    }

    while(!vec.empty()){
        res += "0"; vec.pop_back();
    }

    save_to_floppy(res);
}






vector<int> solve_queries(int subtask_id, int N, const string &bits, const vector<int> &a, const vector<int> &b) {
    vector<int> dp(N), vec;
    int cur = 0;

    for(int i = 0; i < (int) bits.size(); i++){
        if(bits[i]=='1'){
            vec.push_back(cur);
            cur++;
        }else{
            dp[vec.back()] = cur;
            vec.pop_back();
        }
    }

    int q = a.size();
    vector<int> res(q);

    for(int i = 0; i < q; i++){
        for(int j = a[i]; j <= b[i]; j++){
            if(dp[j] > b[i]){
                res[i] = j; break;
            }
        }
    }

    return res;


    // vector<int> answers = {0, 0, 0, 0, 1, 2, 2, 2, 2, 3};
    // return answers;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...