Submission #1224231

#TimeUsernameProblemLanguageResultExecution timeMemory
1224231Muhammad_AneeqBrperm (RMI20_brperm)C++20
0 / 100
3095 ms18768 KiB
#include "brperm.h"
#include <iostream>
using namespace std;
int const N=5e5+10,LG=19;
bool vis[N][LG],ans[N][LG]={};
string x;
void init(int n, const char S[]) 
{
  for (int i=0;i<n;i++)
    x+=S[i];
  return;
}

int query(int i, int k) 
{
  if (vis[i][k])
    return ans[i][k];
  vis[i][k]=1;
  int len=(1<<k);
  for (int j=0;j<len;j++)
  {
    int op=0;
    for (int l=0;l<k;l++)
    {
      if ((1<<l)&j)
        op+=(1<<(k-1-l));
    }
    if (x[i+j]!=x[i+op])
    {
      ans[i][k]=0;
      return 0;
    }
  }
  ans[i][k]=1;
  return ans[i][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...