Pagini recente » Cod sursa (job #949106) | Cod sursa (job #243295) | Cod sursa (job #1892492) | Cod sursa (job #2155575) | Cod sursa (job #635616)
Cod sursa(job #635616)
#include <stdio.h>
#include <string.h>
char s[550];
int main(){
FILE *fin=fopen("palm.in","r");
FILE *fout=fopen("palm.out","w");
fscanf(fin,"%s\n",s);
int li,ls;
int n=strlen(s);
int mijloc;
int max=1,m;
mijloc=0;
while((2*(n-mijloc))>max){//n-are rost sa ajung cu mijlocul chiar in n, de exemplu, sigur nu va iesi o secv m mare
//daca palindr e par
for(li=mijloc, ls=mijloc+1;li>=0 &&ls<n && s[li]==s[ls] && s[li]<=s[li+1];li--,ls++);
m=ls-li-1;
if(max<m)max=m;//ea incepe pe st+1
//daca e impar
for(li=mijloc-1,ls=mijloc+1;li>=0 && ls<n && s[li]==s[ls]&& s[li]<=s[li+1];)li--,ls++;
m=ls-li-1;
if(max<m)max=m;//ea incepe pe li+1
mijloc++;
}
fprintf(fout,"%d\n",max);
return 0;
}