Pagini recente » Cod sursa (job #1632764) | Cod sursa (job #1607557) | Cod sursa (job #1781389) | Cod sursa (job #114479) | Cod sursa (job #635543)
Cod sursa(job #635543)
#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[mijloc];li--,ls++)
m=ls-li-1;
if(max<m)max=m;//ea incepe pe st+1
//daca e impar
for(li=ls=mijloc;li>=0 && ls<n && s[li]==s[ls]&& s[li]<=s[mijloc];)li--,ls++;
m=ls-li-1;
if(max<m)max=m;//ea incepe pe st+1
mijloc++;
}
fprintf(fout,"%d\n",max);
return 0;
}