Submission #1338508

#TimeUsernameProblemLanguageResultExecution timeMemory
1338508po_rag526Floppy (RMI20_floppy)C++20
100 / 100
56 ms5096 KiB
#include<bits/stdc++.h>
#include "floppy.h"
using namespace std;
#define ll long long
#define fi first
#define se second
#define ldb long double
#define pii pair<int, int>
#define bend(v) v.begin(), v.end()
const int N = 2e5 + 5, M = 1e6 + 5;
const int mod = 1e9 + 7;
const int base = 311;
const int inf = INT_MAX;
const ll INF = LLONG_MAX;


void read_array(int subtask_id , const vector<int> &v){
    vector<int> st;
    string s = "";
    for(int x : v){
        while(!st.empty() && st.back() <= x) st.pop_back(), s += "0";
        st.push_back(x); s += "1";
    }
    save_to_floppy(s);
}

vector<int> solve_queries(int subtask_id, int n, const string& bit, const vector<int>& a, const vector<int>& b){
    int q = (int)a.size();
    vector<int> ans(q);
    vector<vector<pii>> qu(q);
    for(int i = 0; i < q; i++) qu[b[i]].push_back({a[i], i});
    int j = 0, k = (int)bit.size();
    vector<int> st;
    for(int i = 0; i < n; i++){
        while(j < k && bit[j] == '0') st.pop_back(), j++;
        st.push_back(i); j++;
        for(auto [l, id] : qu[i]) ans[id] = *lower_bound(bend(st), l);
    }
    return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...