#include <stdlib.h>
#include <string.h>
#include<bits/stdc++.h>
#include "floppy.h"
using namespace std;
#define pii pair<int,int>
#define all(x) x.begin(),x.end()
#define rall(x) x.rbegin(),x.rend()
#define pb push_back
#define s second
#define f first
void read_array(int subtask_id, const vector<int> &v){
string ans="";
stack<int>st;
for(int i=v.size()-1;i>=0;i--){
while(!st.empty()&&v[st.top()]<=v[i])st.pop(),ans+='1';
ans+='0';
st.push(i);
}
save_to_floppy(ans);
}
int nxt[18][100000];
vector<int> solve_queries(int subtask_id, int n,const string &bits,const vector<int> &a, const vector<int> &b) {
stack<int>st;
int c=0;
for(int i=n-1;i>=0;i--){
while(bits[c]=='1'){
st.pop();
c++;
}
if(!st.empty())nxt[0][i]=st.top();
else nxt[0][i]=n;
st.push(i);
c++;
}
vector<int>ans;
for(int i=0;i<18;i++)nxt[i][n]=n;
for(int j=1;j<18;j++){
for(int i=0;i<n;i++)nxt[j][i]=nxt[j-1][nxt[j-1][i]];
}
for(int i=0;i<a.size();i++){
int cur=a[i];
for(int j=17;j>=0;j--)if(nxt[j][cur]<=b[i])cur=nxt[j][cur];
ans.pb(cur);
}
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |