Cod sursa(job #780877)

Utilizator BlackLordFMI Alex Oprea BlackLord Data 22 august 2012 16:58:21
Problema Lista lui Andrei Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>
#define MOD 104659
using namespace std;
ifstream f("nrcuv.in");
ofstream g("nrcuv.out");
bool a[28][28];
int b[28], c[28], d[28], i, j, n, e, k, sum;
char c1, c2;
int main(){
	f>>n>>e;
	for(i=1; i<=e; i++)
	{
		f>>c1>>c2;
		a[c1-'a'][c2-'a']=1;
		a[c2-'a'][c1-'a']=1;
	}
	f.close();
	for(i=0; i<26; i++)
		b[i]=1;
	for(i=0; i<26; i++)
		{
			//calculez pe m[i][j]
			for(k=0; k<26; k++)
				if(a[i][k]==0)
					c[i]+=1;
			c[i]=c[i]%MOD;
		}
	for(j=3; j<=n; j++)
	{
		for(i=0; i<26; i++)
		{
			//calculez pe m[i][j]
			for(k=0; k<=i; k++)
				if(a[i][k]==0)
					d[i]+=b[k];
			for(k=i+1; k<26; k++)
				if(a[i][k]==0)
					d[i]+=c[k];
			d[i]=d[i]%MOD;
			b[i]=c[i];
			c[i]=d[i];
			d[i]=0;
		}
	}
	sum=0;
	for(i=0; i<26; i++)
		sum+=c[i];
	g<<sum%MOD;
	g.close();
	return 0;
}