Submission #122355

#TimeUsernameProblemLanguageResultExecution timeMemory
122355bekzhan29Palindromic Partitions (CEOI17_palindromic)C++14
100 / 100
90 ms26788 KiB
#include <bits/stdc++.h> #include <iostream> #include <algorithm> #include <vector> #include <map> #include <unordered_map> #include <set> #include <queue> using namespace std; #define pb push_back #define mp make_pair #define INF 1e9 #define mod 1000000007 #define eps 1e-6 #define abs(x) ((x)>=0?(x):-(x)) #define y1 solai #define fi first #define se second typedef long long ll; void read(ll &x) { scanf("%lld",&x); } void read(ll &x, ll &y) { scanf("%lld%lld",&x,&y); } void read(ll &x, ll &y, ll &z) { scanf("%lld%lld%lld",&x,&y,&z); } void print(ll x) { printf("%lld ",x); } void println(ll x) { printf("%lld\n",x); } const ll N=1000100; ll t,n,ans,p[N],h[N],l,r,len; char s[N]; int main() { cin>>t; p[0]=1; for(ll i=1;i<N;i++) p[i]=p[i-1]*197; for(;t--;) { scanf("\n%s",s); n=strlen(s); for(ll i=1;i<=n;i++) h[i]=h[i-1]+s[i-1]*p[i]; l=1,r=n; ans=0; for(ll i=1;i<=n/2;i++) { len=i-l+1; if((h[i]-h[l-1])*p[r-i]==h[r]-h[r-len]) { ans+=2; l+=len; r-=len; } } if(l<=r) ans++; println(ans); } }

Compilation message (stderr)

palindromic.cpp: In function 'void read(ll&)':
palindromic.cpp:22:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%lld",&x);
  ~~~~~^~~~~~~~~~~
palindromic.cpp: In function 'void read(ll&, ll&)':
palindromic.cpp:26:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%lld%lld",&x,&y);
  ~~~~~^~~~~~~~~~~~~~~~~~
palindromic.cpp: In function 'void read(ll&, ll&, ll&)':
palindromic.cpp:30:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%lld%lld%lld",&x,&y,&z);
  ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
palindromic.cpp: In function 'int main()':
palindromic.cpp:51:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("\n%s",s);
   ~~~~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...