Cod sursa(job #810903)

Utilizator paunmatei7FMI Paun Matei paunmatei7 Data 11 noiembrie 2012 11:14:04
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<stdio.h>
#define mod 104659

using namespace std;

int d[1007][27],a[27][27];

int main ()
{
	int n,m,i,j,k,nr,x,y;
	char ch;
	freopen("nrcuv.in","r",stdin);
	freopen("nrcuv.out","w",stdout);
	scanf("%ld %ld\n",&n,&m);
	for(i=1;i<=m;i++)
	{
		scanf("%c ",&ch);
		
		x=ch-'a';
		
		scanf("%c\n",&ch);
		
		y=ch-'a';
		
		//a[i][j]=1 inseamna ca nu pot
		
		a[x][y]=1;
		
		a[y][x]=1;
		
	}
	
	//initializez
	
	for(i=0;i<=25;i++) 
		d[1][i]=1;
	
	//dinamica
	
	for(i=2;i<=n;i++)
		for(j=0;j<=25;j++)
			for(k=0;k<=25;k++)
				if(a[k][j]==0)//daca pot
					d[i][j]=(d[i][j]+d[i-1][k])%mod;//dinamica

	nr=0;
	
	for(i=0;i<=25;i++)
		nr+=d[n][i],nr%=mod;
	
	printf("%ld",nr%mod);
	
	return 0;
	
}