Submission #1140038

#TimeUsernameProblemLanguageResultExecution timeMemory
1140038PetrixFloppy (RMI20_floppy)C++20
0 / 100
54 ms3816 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...