Run ID 作者 问题 语言 测评结果 Time Memory 代码长度 提交时间
136326 hjx211 统计回文子串 C++ Wrong Answer 2 MS 280 KB 1186 2025-11-12 15:46:01

Tests(0/1):


Code:

#include <bits/stdc++.h> using namespace std; string a; int f=0,i=-1,j,k=1,s,t=0; int dg(int begin,int b,int c,int end) { int d=c,temp=1; if (d+i<a.size()-1 and d-1<a.size()-2) i++; else { i=0; t++; } while (begin<end) { if (a[b]==a[c]) { begin++; end--; b--; c++; } else { temp=0; break; } } if (temp!=0) s++; if (t<2) dg(d-1,d-1,d+i,d+i); else if (f==0) { reverse(a.begin(),a.end()); t=0; i=-1; f=1; j=a.size()/2-1; if (j>0) dg(1,1,3,3); else if (a.size()==2) dg(1,1,1,1); else dg(1,1,2,2); } } int main() { cin>>a; s=a.size(); if (a.size()%2==0 and s>3) { j=a.size()/2-1; dg(0,j,j+1,a.size()-1); } else if (s>3) { j=a.size()/2; dg(0,j-1,j+1,a.size()-1); } if (s==2 and a[0]==a[1]) s=3; else if (s==2) s=2; if (s==3 and a[0]==a[1] and a[0]==a[2]) s=6; else if (s==3 and a[0]==a[1] or s==3 and a[1]==a[2] or s==3 and a[0]==a[2]) s=4; cout<<s<<endl; return 0; }


Run Info:

------Input------
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
------Answer-----
12502500 12502500 12502500 12502500 12502500 12502500 12502500 12502500 12502500 5 30 1
------Your output-----
5185