Cod sursa(job #594085)

Utilizator veleanduAlex Velea veleandu Data 6 iunie 2011 10:50:01
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<fstream>
# define MOD 104659
using namespace std;
typedef struct { long T[30]; } lista;
lista act,last,zh;
char v1,v2;
long sum;
long i,j,k;
long T[26][26];
long n,m;
int main ( )
{
	ifstream in("nrcuv.in");
	ofstream out("nrcuv.out");
	in>>n>>m;
	for( i=1; i<=m; ++i ) 
	{
		in>>v1>>v2;
		T[v1-'a'][v2-'a']=1;
		T[v2-'a'][v1-'a']=1;
	}
	for ( i=0; i<26; ++i )
		last.T[i]=1;
	for ( i=2; i<=n; ++i ) 
	{
		act=zh;
		for ( j=0; j<26; ++j )
			for ( k=0; k<26; ++k )
				if ( T[j][k]==0 ) 
				{
					act.T[j]+=last.T[k];
					act.T[j]%=MOD;
				}
		last=act;
	}
	for ( i=0; i<=26; ++i )
	{
		sum+=last.T[i];
		sum%=MOD;
	}
	out<<sum<<"\n";
	return 0;
}