Submission #856251

#TimeUsernameProblemLanguageResultExecution timeMemory
856251divadFloppy (RMI20_floppy)C++14
100 / 100
93 ms39124 KiB
#include <bits/stdc++.h> #include "floppy.h" using namespace std; const int NMAX = 4e5+2; const int LMAX = 20; int bigr[LMAX][NMAX], st[NMAX], vf; void read_array(int subtask_id, const vector<int> &v) { string bits = ""; int n = v.size(); vf = 0; for(int i = 0; i < n; i++){ while(vf > 0 && st[vf] < v[i]){ bits += "1"; vf--; } st[++vf] = v[i]; bits += "0"; } save_to_floppy(bits); } vector<int> solve_queries(int subtask_id, int N, const string &bits, const vector<int> &a, const vector<int> &b) { int n = N, m = a.size(); vf = 0; int pos = 0; for(int i = 1; i <= n; i++){ while(bits[pos] == '1'){ vf--; pos++; } bigr[0][i] = st[vf]; st[++vf] = i; pos++; } for(int i = 1; i < LMAX; i++){ for(int j = 1; j <= n; j++){ bigr[i][j] = bigr[i-1][bigr[i-1][j]]; } } vector<int> ans; for(int i = 0; i < m; i++){ int l = a[i], r = b[i]; l++, r++; int id = r; for(int j = LMAX-1; j >= 0; j--){ if(bigr[j][id] >= l){ id = bigr[j][id]; } } ans.push_back(id-1); } return ans; }

Compilation message (stderr)

stub.cpp: In function 'void run2()':
stub.cpp:101:30: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  101 |     if (query_answers.size() != M) {
      |         ~~~~~~~~~~~~~~~~~~~~~^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...