Cod sursa(job #594190)

Utilizator valentin.harsanValentin Harsan valentin.harsan Data 6 iunie 2011 16:23:10
Problema Lista lui Andrei Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<stdio.h>
#include<string.h>
#define M 104659
#define N 2001

bool x[30][30];
int n,m,f[50],l[50];
char a,b;

int main() {
	int i,sum=0,j,i2;
	freopen("nrcuv.in","r",stdin);
	freopen("nrcuv.out","w",stdout);
	scanf("%d%d\n",&n,&m);
	for(i=1;i<=m;++i) {
		scanf("%c %c\n",&a,&b);
		a-='a';
		b-='a';
		x[(int) a][(int) b]=1; x[(int) b][(int) a]=1;
	}
	for(i=1;i<=26;i++)
		l[i]=1;
	
	for(i=2;i<=n;i++) {
		for(j=1;j<=26;j++) {
			f[j]=0;
			for(i2=1;i2<=26;i2++)
				if(!x[i2][j])
					f[j]=(f[j]+l[i2])%M;
		}
		memcpy(l,f,sizeof(l));
	}
	for(i=1;i<=26;i++)
		sum=(sum+l[i])%M;
	printf("%d",sum);
	return 0;
}