#include <iostream>
#include <vector>
using namespace std;
#include "floppy.h"
void read_array(int subid,const vector<int>& v){
string rasp="";vector<int> q;q.clear();
int i;
for(i=0;i<v.size();i++){
while(!q.empty() && v[i]>v[q.back()]){
rasp+='0';
q.pop_back();
}
q.push_back(i);rasp+='1';
}
save_to_floppy(rasp);
}
vector<int> solve_queries(int subid,int n,const string& bits,const vector<int> &a,const vector<int> &b){
int i,poz=0,j,st,dr,mij,rasp1;
vector<vector<int>> v(n);
vector<int> q,rasp((int)a.size());q.clear();
for(i=0;i<a.size();i++)
v[b[i]].push_back(i);
for(i=0;i<n;i++){
while(bits[poz]=='0'){
q.pop_back();poz++;
}
q.push_back(i);poz++;
for(j=0;j<v[i].size();j++){
st=0;dr=q.size()-1;
while(st<=dr){
mij=(st+dr)/2;
if(q[mij]>=a[v[i][j]]){
rasp1=mij;st=mij+1;
}else dr=mij-1;
}
rasp[v[i][j]]=q[rasp1];
}
}
return rasp;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |