Cod sursa(job #640616)

Utilizator cdascaluDascalu Cristian cdascalu Data 26 noiembrie 2011 09:48:14
Problema PalM Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include<stdio.h>
#include<string.h>
#define Nmax 502
char s[Nmax];
int main()
{
    FILE*f = fopen("palm.in","r");
    fgets(s,Nmax,f);
    fclose(f);
    int i,j,k,size = strlen(s),l=0,max,min,ok,asc,desc,maxim=0;
    for(i=0;i<size;++i)
    {
        for(j=i+1;j<size;++j)
        {
            min = Nmax;
            max = 0;
            asc = desc = ok = 1;
            for(k=i;k<=(i+j)/2&&ok;++k)
            {
                if(s[k]!=s[j-k+i])
                {
                    ok=0;
                    continue;
                }
                if(s[k]>=max)
                    max = s[k];
                else
                    asc=0;
                if(s[k]<=min)
                    min = s[k];
                else desc=0;
            }
            if(ok && (asc||desc) && j-i+1>maxim)
                maxim = j-i+1;
        }
    }
    FILE*g = fopen("palm.out","w");
    fprintf(g,"%d\n",maxim);
    fclose(g);
    return 0;
}