Submission #1221801

#TimeUsernameProblemLanguageResultExecution timeMemory
1221801anonymous321Brperm (RMI20_brperm)C++20
0 / 100
548 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 = i; j < min(i + MAXL, n); j++) {
            string s1 = "";
            string s2 = "";
            for (int k = i; k <= j; k++) {
                s1 += s[k];
            }
            s2 = s1;
            reverse(s2.begin(), s2.end());
            if (s1 == s2) sol[i][j - i + 1] = 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...