Cod sursa(job #131852)

Utilizator gabitzish1Gabriel Bitis gabitzish1 Data 4 februarie 2008 16:09:56
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <stdio.h>

int n, m, a[1002][30], b[30][30];
long s;

int main()
{
	freopen("nrcuv.in","r",stdin);
	freopen("nrcuv.out","w",stdout);

	int i, j, k;
	char x, y;

	scanf("%d %d\n", &n, &m);

	for (i = 1; i <= m; i++)
	{
		scanf("%c %c\n",&x, &y);
		b[x-'a'+1][y-'a'+1] = b[y-'a'+1][x-'a'+1] = 1;
	}

	for (i = 1; i <= 26; i++) a[1][i] = 1;


	for (i = 2; i <= n; i++)
		for(j = 1; j <= 26; j++)
			for (k = 1; k <= 26; k++)
			{
				if (!b[j][k]) a[i][j] += a[i-1][k];
				a[i][j] %= 104659;
			}

	for (i = 1; i <= 26; i++)
	{
		s += a[n][i];
		s %= 104659;
	}
	printf("%ld\n",s);
	return 0;
}