Submission #1225420

#TimeUsernameProblemLanguageResultExecution timeMemory
1225420Ghulam_JunaidFloppy (RMI20_floppy)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
#include <stdlib.h>
#include <string.h>
#include "floppy.h"
// #include "grader.cpp"
using namespace std;

const int MXN = 4e4 + 10, LG = 16;
int n, sp[MXN][LG], pos[MXN], tme, cur;
vector<int> arr, order;
string bits;

int get(int l, int r){
    int lg = __builtin_clz(r - l + 1);
    int i = sp[l][lg], j = sp[r - (1 << lg) + 1][lg];
    if (arr[i] > arr[j]) return i;
    return j;
}

void dnc(int l, int r){
    if (l > r) return ;
    int mx = get(l, r);
    if (l == mx) bits += '0';
    else bits += '1';
    if (mx == r) bits += '0';
    else bits += '1';

    dnc(l, mx - 1);
    dnc(mx + 1, r);   
}

void read_array(int subtask_id, const vector<int> &v) {
    a = v;
    n = arr.size();
    for (int i = 0; i < n; i ++)
        sp[i][0] = arr[i];
    for (int j = 1; j < LG; j ++){
        for (int i = 0; i < n; i ++){
            int nxt = i + (1 << (j - 1));
            sp[i][j] = sp[i][j - 1];
            if (nxt < n and arr[sp[i][j]] < arr[sp[nxt][j - 1]])
                sp[i][j] = sp[nxt][j - 1];
        }
    }
    dnc(0, n - 1);
    save_to_floppy(bits);
}

void dfs(int v){
    if (bits[2 * v] == '1'){
        cur++;
        dfs(cur);
    }
    pos[v] = tme++;
    if (bits[2 * v + 1] == '1'){
        cur++;
        dfs(cur);
    }
    order.push_back(pos[v]);
}

vector<int> solve_queries(int subtask_id, int nn,
        const string &ss,
        const vector<int> &a, const vector<int> &b) {
    bits = ss, n = nn;
    dfs(0);

    for (int i = 0; i < n; i ++)
        pos[order[i]] = i;
    vector<int> answers;
    for (int i = 0; i < a.size(); i ++){
        int l = a[i], r = b[i];
        int mx = 0;
        for (int j = l; j <= r; j ++)
            mx = max(mx, pos[j]);
        answers.push_back(order[mx]);   
    }
    return answers;
}

Compilation message (stderr)

floppy.cpp: In function 'void read_array(int, const std::vector<int>&)':
floppy.cpp:33:5: error: 'a' was not declared in this scope
   33 |     a = v;
      |     ^