Submission #362641

#TimeUsernameProblemLanguageResultExecution timeMemory
362641shahriarkhanPalindromic Partitions (CEOI17_palindromic)C++14
100 / 100
284 ms19292 KiB
#include<bits/stdc++.h> using namespace std ; const int mx = 1e6 + 5 ; const long long base = 31 , mod = 1e9 + 7 ; long long pw[mx] ; int main() { int t ; scanf("%d",&t) ; pw[0] = 1 ; for(int i = 1 ; i < mx ; ++i) { pw[i] = (pw[i-1]*base)%mod ; } while(t--) { string s ; cin>>s ; int siz = s.size() , l = 0 , r = siz - 1 , p = 0 , ans = 0 ; long long h1 = 0 , h2 = 0 ; while(l<r) { h1 = ((h1*base)%mod + s[l++])%mod ; h2 = (h2 + (pw[p++]*s[r--])%mod)%mod ; if(h1==h2) { ans += 2 ; h1 = h2 = p = 0 ; } } if(h1 != h2 || l==r) ++ans ; printf("%d\n",ans) ; } return 0 ; }

Compilation message (stderr)

palindromic.cpp: In function 'int main()':
palindromic.cpp:13:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   13 |     scanf("%d",&t) ;
      |     ~~~~~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...