Submission #520285

#TimeUsernameProblemLanguageResultExecution timeMemory
520285krit3379Palindromic Partitions (CEOI17_palindromic)C++14
100 / 100
244 ms28620 KiB
#include<bits/stdc++.h> using namespace std; #define N 1000005 long long hx[N],bp[N],p=31,mod=1e9+7; long long val(int i,int j){ return ((hx[j]-hx[i-1]*bp[j-i+1])%mod+mod)%mod; } int main(){ ios_base::sync_with_stdio(false);cin.tie(nullptr); int t,n,i,j,ans; string s; cin>>t; bp[0]=1; for(i=1;i<N;i++)bp[i]=(bp[i-1]*p)%mod; while(t--){ cin>>s; ans=0; n=s.length(); s='0'+s; for(i=1;i<=n;i++)hx[i]=0; for(i=1;i<=n;i++)hx[i]=(hx[i-1]*p+s[i]-'a'+1)%mod; for(i=1,j=1;j<=n/2;j++){ if(val(i,j)==val(n-j+1,n-i+1)){ ans+=2; i=j+1; } } if(n%2||i!=j)ans++; cout<<ans<<endl; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...