Cod sursa(job #194379)

Utilizator savimSerban Andrei Stan savim Data 10 iunie 2008 11:45:09
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <stdio.h>
#define maxl 1010

int i,j,k,n,p,q,sum=0;
int pos[30][30];
int c[maxl][30];
char s[10];

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

	scanf("%d %d\n",&n,&k);
	for (i=1; i<=k; i++)
	{
		fgets(s+1,9,stdin);
		p=s[1]-'a'+1;q=s[3]-'a'+1;
		pos[p][q]=1;
		pos[q][p]=1;
	}

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

	for (i=1; i<=n-1; i++)
		for (j=1; j<=26; j++)
			for (k=1; k<=26; k++)
				if (pos[j][k]==0)
				c[i+1][k]=(c[i+1][k]+c[i][j])%104659;

	for (i=1; i<=26; i++)
		sum=(sum+c[n][i])%104659;
	printf("%d\n",sum);
    
    return 0;    
}