Cod sursa(job #710355)

Utilizator bmanghiucManghiuc Bogdan bmanghiuc Data 9 martie 2012 14:49:00
Problema Lista lui Andrei Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<iostream>
#include<fstream>
using namespace std;
int sol[1005][30],n,m,pas[30][30];
char a,b;
int main()
{
	freopen("nrcuv.in","r",stdin);
	freopen("nrcuv.out","w",stdout);
	scanf("%d%d",&n,&m);
	for(int i=1;i<=26;i++)
		for(int j=1;j<=26;j++)
			pas[i][j]=1;
	cin.get();
	for(int i=1;i<=m;i++)
	{
		cin>>a>>b;
		pas[a-96][b-96]=0;
		pas[b-96][a-96]=0;
	}
	for(int i=1;i<=26;i++)
		sol[1][i]=1;
	for(int linie=2;linie<=n;linie++)
	{
		for(int j=1;j<=26;j++)
		{
			//suma de deasupra
			for(int l=1;l<=26;l++)
			{
				sol[linie][j]+=(sol[linie-1][j]*pas[l][j])%104659;
				sol[linie][j]=(sol[linie][j])%104659;
			}
		}
	}
	int suma=0;
	for(int i=1;i<=26;i++)
	{
		suma+=(sol[n][i])%104659;
		suma=(suma)%104659;
	}
	printf("%d",suma);
	return 0;
}