Submission #1332617

#TimeUsernameProblemLanguageResultExecution timeMemory
1332617settopFloppy (RMI20_floppy)C++20
100 / 100
533 ms3896 KiB
#include <stdlib.h>
#include <string.h>
#include "floppy.h"
#include<bits/stdc++.h>
using namespace std;
#define fall(i,a,b) for(int i=a;i<=b;i++)
#define rfall(i,a,b) for(int i=a;i>=b;i--)
#define sz(v) (int)v.size()
#define pb push_back

//save_to_floppy(bits);

void read_array(int subtask_id, const std::vector<int> &v) {
    stack<int> st;
    string s;
    int n=sz(v);
    fall(i,0,n-1){
        while(!st.empty()){
            auto x=st.top();
            if(x>v[i]){
                s.pb('0');
                break;
            }
            s.pb('1');
            st.pop();
        }
        st.push(v[i]);
    }
    save_to_floppy(s);
}

std::vector<int> solve_queries(int subtask_id, int N,
        const std::string &bits,
        const std::vector<int> &a, const std::vector<int> &b) {
    
    int n=N;
    vector<int> low(n);
    stack<int> st;
    int p=0;
    fall(i,0,n-1){
        while(!st.empty()){
            auto x=st.top(); 
            if(bits[p++]=='0'){
                low[i]=x;
                break;
            }
            st.pop();
        }
        if(st.empty()) low[i]=-1;
        st.push(i);
    }
    vector<int> resp(sz(a));
    fall(j,0,sz(a)-1){
        int ans;
        fall(i,a[j],b[j]) if(low[i]<a[j]) ans=i;
        resp[j]=ans;
    }
    return resp;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...