Cod sursa(job #635678)

Utilizator blue_phoenixPosea Elena blue_phoenix Data 19 noiembrie 2011 14:05:17
Problema PalM Scor 20
Compilator cpp Status done
Runda .com 2011 Marime 0.77 kb
#include <stdio.h>
#include <string.h>

char s[550];

int main(){  
   freopen("palm.in","r",stdin);
   FILE *fout=fopen("palm.out","w");
   fread (s,1,510,stdin);
   //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;
}