Submission #592981

#TimeUsernameProblemLanguageResultExecution timeMemory
592981HanksburgerPalindromic Partitions (CEOI17_palindromic)C++17
100 / 100
68 ms19028 KiB
#include <bits/stdc++.h> using namespace std; const long long mod1=1e15+1, mod2=1e15+3; long long power1[1000005], power2[1000005]; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); power1[0]=power2[0]=1; for (long long i=1; i<=1e6; i++) power1[i]=power1[i-1]*26%mod1; for (long long i=1; i<=1e6; i++) power2[i]=power2[i-1]*26%mod2; long long t; cin >> t; while (t--) { string str; cin >> str; long long len=str.length(), x1=0, x2=0, y1=0, y2=0, cnt=0, ans=0; for (long long i=0; i<len/2; i++) { x1=(x1*26+str[i]-'a')%mod1; x2=(x2*26+str[i]-'a')%mod2; y1=(y1+(str[len-i-1]-'a')*power1[cnt])%mod1; y2=(y2+(str[len-i-1]-'a')*power2[cnt])%mod2; cnt++; if (x1==y1 && x2==y2) { ans+=2; x1=x2=y1=y2=cnt=0; } } cout << ans+(cnt || len&1) << '\n'; } 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...