Submission #217865

#TimeUsernameProblemLanguageResultExecution timeMemory
217865aloo123Palindromic Partitions (CEOI17_palindromic)C++14
100 / 100
57 ms11708 KiB
#include <bits/stdc++.h> #define ll long long #define ld long double #define mp make_pair #define pb push_back #define vll vector<ll> #define endl "\n" #define pll pair<ll,ll> #define all(x) (x).begin() , (x).end() #define f first #define s second using namespace std; const ll N =(2e5+5); const ll MOD = 998244353; const ll INF = 1e16; const ll LOG = 29; long long binpow(long long a, long long b) { a %= MOD; long long res = 1; while (b > 0) { if (b & 1) res = (res * a)%MOD ; a = (a * a)%MOD ; b >>= 1; } res%=MOD; return res; } ll pp[1000005]; void solve(){ string s; cin>>s; ll n = (ll)s.size(); //cout<<n<<endl; ll l= 0,r= n -1; ll a=0; ll b=0; ll ans = 0; ll x=-1,y=n; ll lol = 0,gg=n-1; while(l < r){ a = (a * LOG + (s[l]-'a'+1))%MOD; // 4 b = ( b + pp[gg-r] * (s[r] - 'a' + 1))%MOD;// // cout<<l<<" "<<r<<" --> " << a<< " "<<b<<endl; if(b == a){ ans += 2; a=0; b=0; x = l,y =r; lol = l-1,gg = r-1; } l++,r--; } if((x+1)<=(y-1)) ans++; cout<<ans<<endl; } int main() { ios_base::sync_with_stdio(0); cin.tie(NULL); pp[0] = 1; for(int i =1;i<=1000000;i++)pp[i] = (pp[i-1] * LOG)%MOD; ll t;cin>>t; while(t--){ solve(); } return 0; }

Compilation message (stderr)

palindromic.cpp: In function 'void solve()':
palindromic.cpp:43:8: warning: variable 'lol' set but not used [-Wunused-but-set-variable]
     ll lol = 0,gg=n-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...