Submission #856248

# Submission time Handle Problem Language Result Execution time Memory
856248 2023-10-02T21:47:48 Z divad Floppy (RMI20_floppy) C++14
28 / 100
1000 ms 10312 KB
#include <bits/stdc++.h>
#include "floppy.h"
using namespace std;
const int NMAX = 4e5+2;
int bigr[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[i] = st[vf];
        st[++vf] = i;
        pos++;
    }
    vector<int> ans;
    for(int i = 0; i < m; i++){
        int l = a[i], r = b[i];
        l++, r++;
        int id = r;
        while(bigr[id] >= l){
            id = bigr[id];
        }
        ans.push_back(id-1);
    }
    return ans;
}

Compilation message

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 time Memory Grader output
1 Correct 2 ms 2864 KB Output is correct
2 Correct 2 ms 2868 KB Output is correct
3 Correct 2 ms 2856 KB Output is correct
4 Correct 2 ms 2856 KB Output is correct
5 Correct 2 ms 2864 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 19 ms 4656 KB Output is correct
2 Correct 16 ms 4668 KB Output is correct
3 Correct 99 ms 4856 KB Output is correct
4 Correct 22 ms 4648 KB Output is correct
5 Correct 17 ms 4652 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 64 ms 10312 KB Output is correct
2 Correct 64 ms 10096 KB Output is correct
3 Execution timed out 1059 ms 10196 KB Time limit exceeded
4 Halted 0 ms 0 KB -