Submission #645763

#TimeUsernameProblemLanguageResultExecution timeMemory
645763rodovBrperm (RMI20_brperm)C++14
50 / 100
3042 ms5460 KiB
using namespace std; #include <bits/stdc++.h> #define ll long long //string s; ll mas[500007]; ll N; void init(int n, const char s[]) { N=n; for(int i=0;i<N;i++){ mas[i]=s[i]-'a'+1; //cout<<mas[i]<<' '; } return; } string bin; ll a1,a2; ll f(ll v,ll k){ bin=""; for(int i=1;i<=k;i++){ if(v%2==0){ bin+='0'; }else{ bin+='1'; } v/=2; } reverse(bin.begin(),bin.end()); a1=1;a2=0; for(int i=1;i<=k;i++){ if(bin[i-1]=='0'){ a1*=2; }else{ a2+=a1; a1+=a1; } } return a2; } int query(int i, int k) { if(i+(pow(2,k))>N)return 0; for(int j=i;j<=i+pow(2,k)-1;j++){ //cout<<f(j-i,k)<<' '<<j<<endl; if(mas[i+f(j-i,k)]!=mas[j])return 0; } return 1; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...