#include <bits/stdc++.h>
#include "floppy.h"
using namespace std;
void read_array(int subtask_id, const vector<int> &v) {
stack<int> stk;
while(!stk.empty()) stk.pop();
string bits="";
for(int i=0; i<v.size(); ++i) {
while(!stk.empty() and v[i]>stk.top()) {
stk.pop();
bits+="0";
}
stk.push(v[i]);
bits+="1";
}
save_to_floppy(bits);
}
#define pii pair<int,int>
#define pb push_back
#define all(x) x.begin(),x.end()
vector<int> solve_queries(int subtask_id, int n,
const string &bits,
const vector<int> &a, const vector<int> &b) {
vector<pii> qry[n+1];
for(int i=0; i<=n; ++i) qry[i]={};
for(int i=0; i<a.size(); ++i) qry[b[i]].pb({a[i],i});
vector<int> ans(a.size());
vector<int> stk={};
int r=-1;
for(auto &b : bits) {
if(b=='0') stk.pop_back();
else stk.pb(++r);
if(b=='0') continue;
for(auto &[l,i] : qry[r]) {
ans[i] = *lower_bound(all(stk),l);
}
}
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... |