#include <stdlib.h>
#include <string.h>
#include "floppy.h"
#include <bits/stdc++.h>
using namespace std;
void read_array(int subtask_id, const vector<int> &v) {
stack<int> s;
int n=v.size();
string bits="";
for(int i=0;i<n;i++){
while(!s.empty() and s.top() < v[i]){
s.pop();
bits+="0";
}
bits+="1";
s.push(v[i]);
}
//~ cout<<bits<<endl;
save_to_floppy(bits);
}
vector<int> solve_queries(int subtask_id, int N,
const string &bits,
const vector<int> &a, const vector<int> &b) {
vector<vector<int>> qs(N);
int q=a.size();
for(int i=0;i<q;i++){
qs[b[i]].push_back(i);
}
vector<int> v, ret(q, -1);
int cnt=-1;
for(int i=0;i<(int)bits.size();i++){
if(bits[i]=='1'){
cnt++;
v.push_back(cnt);
for(auto qind : qs[cnt]){
int ans=*lower_bound(v.begin(),v.end(),a[qind]);
ret[qind]=ans;
}
}
else {
assert(!v.empty());
v.pop_back();
}
}
return ret;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |