Cod sursa(job #194348)

Utilizator andrei-alphaAndrei-Bogdan Antonescu andrei-alpha Data 9 iunie 2008 22:30:11
Problema Lista lui Andrei Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <cstdio>
#define IN "nrcuv.in"
#define OUT "nrcuv.out"
#define FOR(i,a,b) for(int i=a;i<=b;++i)
#define N_MAX 1501
#define MOD 104659
int n,m;
int rez=0;
int a[N_MAX][30];
bool bo[30][30];

void scan()
{
	char c1,c2;
	freopen(IN, "r",stdin);
	freopen(OUT, "w",stdout);
	scanf("%d %d\n", &n,&m);
	FOR(i,1,m)
	{
		scanf("%c%c%c\n",&c1,&c2,&c2);
		bo[c1-'a'+1][c2-'a'+1]=true;
	}	
}

void solve()
{
	FOR(i,1,26)
		a[1][i]=1;
	FOR(i,1,n)
		FOR(j,1,26)
		{
			FOR(k,1,26)
				if(!bo[k][j] && !bo[j][k])
					a[i][j]+=a[i-1][k];
			a[i][j]%=MOD;
		}	
	FOR(i,1,26)
		rez+=a[n][i];
	printf("%d\n", rez); 	
}		
	
int main()
{
	scan();
	solve();
	return 0;
}