Cod sursa(job #123244)

Utilizator anna_bozianuBozianu Ana anna_bozianu Data 15 ianuarie 2008 08:40:06
Problema PScPld Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<stdio.h>
#include<string.h>
char *s,sir[2000005];
long int i,lung[2000005],ls,left,right,cont;
int main()
{
	FILE *f,*g;f=fopen("pscpld.in","r");g=fopen("pscpld.out","w");
	s=&sir[0];fscanf(f,"%s",s);
	ls=strlen(s);
	for(i=ls-1;i>=0;i--)
	{ s[2*i+1]=s[i];
	  s[2*i+2]=' ';
	}
        s[0]=' ';
	for(i=1;i<=2*ls-1;)
	{ left=i-1;right=i+1;
	  if(s[left]==s[right])
	  { cont++;
	    while(left>=0&&right<=2*ls&&s[left]==s[right])
	    { lung[i]++;
	      lung[right]=lung[left];
	      if(lung[right])cont++;
	      left--;right++;
	    }
	    i=right-1;
	  }
          else i++;
	}
	fprintf(g,"%ld\n",cont);
	return 0;
}