Cod sursa(job #274570)

Utilizator Bit_MasterAlexandru-Iancu Caragicu Bit_Master Data 9 martie 2009 20:54:25
Problema PScPld Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <stdio.h>
#include <string.h>

const long S = 1000001;

long nr = 0,n;

char s[S];

void cautare_lun_pare()
{
	long l1,l2;
	for (int i = 0; s[i]!= 0; ++i)
		if (s[i] == s[i+1])
		{
			l1 = i;
			l2 = i+1;
			while ((s[l1] == s[l2])&&(0<=l1)&&(l2<=n))
			{
				++nr;
				--l1;
				++l2;
			}
		}
}

void cautare_lun_impare()
{
	long l1,l2;
	for (int i = 1; s[i]!= 0; ++i)
		if (s[i-1] == s[i+1])
		{
			l1 = i-1;
			l2 = i+1;
			while ((s[l1] == s[l2])&&(0<=l1)&&(l2<=n))
			{
				++nr;
				--l1;
				++l2;
			}
		}
}

int main()
{
	freopen ("pscpld.in","r",stdin);
	freopen ("pscpld.out","w",stdout);
	gets(s);
	n = strlen(s)-1;
	nr = n+1;
	cautare_lun_pare();
	cautare_lun_impare();
	printf("%ld",nr);
}