Cod sursa(job #107204)

Utilizator coderninuHasna Robert coderninu Data 19 noiembrie 2007 16:34:32
Problema PScPld Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <stdio.h>
#include <string.h>
#define Nmax 1000000


char sir[Nmax];
long n, temp;
long rez, i, j;



inline int min(int x, int y) { return x<y?x:y; }

int main()
{
	freopen("pscpld.in", "r", stdin);
	scanf("%s", &sir);
	fclose(stdin);

	n=strlen(sir);
	n--;
	for (i=0; i<=n; i++)
	{
		rez++;
		temp=min(i,n-i);
		for (j=1; j<=temp && sir[i+j]==sir[i-j]; j++)
		{
			rez++;
		}
		if (sir[i]==sir[i+1])
		{
			temp=min(i,n-i-1);
			rez++;
			for (j=1; j<=temp && sir[i+j+1]==sir[i-j]; j++)
			{
				rez++;
			}

		}

	}
	freopen("pscpld.out", "w", stdout);
	printf("%ld", rez);
	fclose(stdout);
	return 0;
}