Pagini recente » Cod sursa (job #2831906) | Cod sursa (job #38451) | Cod sursa (job #2940641) | Cod sursa (job #851901) | Cod sursa (job #639042)
Cod sursa(job #639042)
#include<fstream>
#include<string.h>
using namespace std;
ifstream in("palm.in");
ofstream out("palm.out");
char a[503];
int n,smax=1;
void pal1(int poz) {
int i,lung=1;
for(i=poz-1;i!=0 && 2*poz-i<=n;--i)
if(a[i]==a[2*poz-i] && a[i]<=a[i+1])
lung+=2;
else
break;
if(lung>smax)
smax=lung;
}
void pal2(int poz) {
int i,lung=2;
if(a[poz]!=a[poz+1])
return;
for(i=poz-1;i!=0 && 2*poz-i+1<=n;--i)
if(a[i]==a[2*poz-i+1] && a[i]<=a[i+1])
lung+=2;
else
break;
if(lung>smax)
smax=lung;
}
int main() {
int i;
in.getline(a+1,501);
a[0]=90;
n=strlen(a);
if(n!=1 && a[1]==a[2])
smax=2;
for(i=2;i!=n;++i) {
if(i!=1)pal1(i);
pal2(i);
}
out << smax;
return 0;
}