Submission #1096981

#TimeUsernameProblemLanguageResultExecution timeMemory
1096981moiaaaaaaaPalindromic Partitions (CEOI17_palindromic)C++14
100 / 100
141 ms28820 KiB
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int mod=998244353,moi=1e6+111,base=311,mod1=1e9+7,base1=331;
string s,t;
int n;
bool check;
ll Pow[moi],Hash[moi],Pow1[moi],Hash1[moi];
ll gethash(int i,int j)
{
    return (Hash[j]-Hash[i-1]*Pow[j-i+1]%mod+mod)%mod;
}
void Input()
{
 int x;
 cin>>x;
 while(x--)
 {
 int res=0;
 cin>>s;
 n=s.size();
 s=" "+s;
 Pow[0]=1;
 Hash[0]=0;
 for(int i=1;i<=n;i++)
 {
    Pow[i]=Pow[i-1]*base%mod;
    Hash[i]=(Hash[i-1]*base%mod+s[i]-'a')%mod;
 }
 int l=1,r=n;
 for(int i=1,j=n;i<j;i++,j--)
 {
   ll hash1=gethash(l,i);
   ll hash2=gethash(j,r);
   if(hash1==hash2)
   {
     res+=2;
     l=i+1;
     r=j-1;
   }
 }
 if(l<=r)res++;
 cout<<res<<'\n';
 }
}
int main()
{
 ios_base::sync_with_stdio(false);
 cin.tie(NULL);
 cout.tie(NULL);
 if(fopen("a.inp","r"))
 {
 freopen("a.inp","r",stdin);
 freopen("a.out","w",stdout);
 }
 Input();
}

Compilation message (stderr)

palindromic.cpp: In function 'int main()':
palindromic.cpp:53:9: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   53 |  freopen("a.inp","r",stdin);
      |  ~~~~~~~^~~~~~~~~~~~~~~~~~~
palindromic.cpp:54:9: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   54 |  freopen("a.out","w",stdout);
      |  ~~~~~~~^~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...