Submission #1221802

#TimeUsernameProblemLanguageResultExecution timeMemory
1221802anonymous321Brperm (RMI20_brperm)C++20
0 / 100
670 ms37148 KiB
#include "brperm.h"
#include <bits/stdc++.h>
using namespace std;
int MAXL;

vector<vector<bool>> sol;

struct node {
    map<int, int> child {};
    set<int> id {};
};

void init(int n, const char s[]) {
    MAXL = __lg(n) + 1;
    sol = vector<vector<bool>> (n, vector<bool>(MAXL, false));
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < MAXL; j++) {
            if (i + (1 << j) > sol.size()) break;
            string s1 = "";
            string s2 = "";
            for (int k = i; k < min(i+j, n); k++) {
                s1 += s[k];
                s2 += s[k];
            }
            reverse(s2.begin(), s2.end());
            if (s1 == s2) sol[i][j] = true;
        }
    }
    return;
}

int query(int i, int k) {
    if (i + (1 << k) > sol.size()) return false;
    if (k == 0) return true;
    return sol[i+1][k];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...