Cod sursa(job #342772)

Utilizator MarcvsHdrMihai Leonte MarcvsHdr Data 23 august 2009 16:09:31
Problema PScPld Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
# include <stdio.h>
# include <string.h>

const long int MAXN=1000000;

char buff[MAXN+10],*s;

long int sol,len;

void scrie()
{
     FILE *g=fopen("pscpld.out","w");
     fprintf(g,"%ld\n",sol);
     fclose(g);
}

void citire()
{
     FILE *f=fopen("pscpld.in","r");
     fread(buff+1,1,MAXN,f);
     fclose(f);
}

long int maxpal(long int li, long int lf)
{
     long int solloc=0;
     while (li && lf<=len && buff[li]==buff[lf])
           {
           li--;
           lf++;
           solloc++;
           }
     return solloc;
}          

void calculeaza()
{
     long int i;
     s=strtok(buff+1," \n");
     len=strlen(s);
     for (i=1;i<=len;i++)
         {
         sol+=maxpal(i-1,i+1)+1;
         sol+=maxpal(i-1,i);
         }
}

int main()
{
    citire();
    calculeaza();
    scrie();
    return 0;
}