Submission #1294865

#TimeUsernameProblemLanguageResultExecution timeMemory
1294865WH8Floppy (RMI20_floppy)C++20
100 / 100
56 ms3892 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...