Submission #1086948

#TimeUsernameProblemLanguageResultExecution timeMemory
1086948ZeroCoolPalindromic Partitions (CEOI17_palindromic)C++14
100 / 100
50 ms28172 KiB
#include <bits/stdc++.h> using namespace std; #define ar array #define int long long #define ld long double #define crash assert(69 == 420) const int MOD = 1e9 + 7; const int INF = 1e17; const int N = 2e6 + 20; const int LOG = 20; const int B = 954285419; //! Pray to RNGesus for no collisions int pw[N]; signed main(){ios_base::sync_with_stdio(false);cin.tie(0); int t; cin>>t; pw[0] = 1; for(int i = 1;i < N;i++)pw[i] = (pw[i - 1] * B) % MOD; while(t--){ string s; cin>>s; int n = s.size(); int ans = 0; int l = 0, r = n - 1; int x = 0, y = 0, sz = 0; while(l < r){ x = (x * B + s[l] ) % MOD; y = (y + pw[sz] * s[r] ) % MOD; if(x == y){ x = y = sz = 0; ans += 2; }else sz++; l++, r--; } if(n % 2 || sz)ans++; cout<<ans<<'\n'; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...