Submission #122927

#TimeUsernameProblemLanguageResultExecution timeMemory
122927davitmargPalindromic Partitions (CEOI17_palindromic)C++17
100 / 100
58 ms11156 KiB
/*DavitMarg*/
#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <string>
#include <cstring>
#include <map>
#include <unordered_map>
#include <bitset>
#include <set>
#include <queue>
#include <deque>
#include <stack>
#include <iterator>
#include <ctype.h>
#include <stdlib.h>
#include <cassert>
#include <fstream>
#define mod 1000000007ll
#define LL long long
#define LD long double
#define MP make_pair
#define PB push_back
#define all(v) v.begin(),v.end()
#define FIO ios::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL)
using namespace std;


int t;
string s;
LL h1,h2,p=351,a=1;

int main()
{
	FIO;
    cin>>t;
    while(t--)
	{
		cin>>s;
        int ans=0;
        for(int i=0;i<s.length();i++)
		{
            h1+=a*(s[i]-'a'+1);
            h2*=p;
            h2+=s[s.length()-1-i]-'a'+1;
            a*=p;
            if(h1==h2)
			{
				a=1;
                h1=h2=0;
                ans++;
			}
		}
		cout<<ans<<endl;
	}

	return 0;
}

/*

4 4 1
1 2
2 3




*/


Compilation message (stderr)

palindromic.cpp: In function 'int main()':
palindromic.cpp:42:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int i=0;i<s.length();i++)
                     ~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...