Submission #1194324

#TimeUsernameProblemLanguageResultExecution timeMemory
1194324PetrixPalindromic Partitions (CEOI17_palindromic)C++20
100 / 100
131 ms3288 KiB
#include <iostream>

using namespace std;

#define int long long
#define MOD 1000000007
#define B 31

void solve(){
    string s;cin>>s;
    int rasp=0,st=0,dr,hash1,hash2,put,i;
    dr=s.size()-1;
    while(st<=dr){
        hash1=hash2=0;put=1;
        do{
            if(st>=dr){
                rasp++;
                st++;dr--;
                break;
            }
            hash1=((s[st]-'a'+1)+hash1*B)%MOD;
            hash2=((s[dr]-'a'+1)*put+hash2)%MOD;
            st++;dr--;
            put=(put*B)%MOD;
        }while(hash1!=hash2);
        if(hash1&& hash1==hash2){
            rasp+=2;
        }
    }
    cout<<rasp<<"\n";
}

signed main()
{
    int t;
    cin>>t;
    while(t){
        solve();t--;
    }
    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...