Cod sursa(job #635543)

Utilizator blue_phoenixPosea Elena blue_phoenix Data 19 noiembrie 2011 12:58:45
Problema PalM Scor 0
Compilator cpp Status done
Runda .com 2011 Marime 0.74 kb
#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;
}