Cod sursa(job #594084)

Utilizator vladtarniceruVlad Tarniceru vladtarniceru Data 6 iunie 2011 10:49:28
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
# include <fstream>
# include <cstring>

using namespace std;

int ap[30][30], n, m, i, j, k, a[2][30], P = 1, U = 0, sol;
char c1, c2;
int main ()
{
	ifstream f ("nrcuv.in");
	ofstream g ("nrcuv.out");
	
	f >> n >> m;
	
	for (i = 1; i <= m; ++i){
		f >> c1 >> c2;
		ap[c1 - 'a'][c2 - 'a'] = 1;
		ap[c2 - 'a'][c1 - 'a'] = 1;
	}
	for (i = 0; i < 26; ++i)
		a[U][i] = 1;
	
	for (i = 2; i <= n; ++i)
	{
		for (j = 0; j < 26; ++j)
			for (k = 0; k < 26; ++k)
				if (!ap[j][k])
				{
					a[P][j] += a[U][k];
					a[P][j] %= 104659;
				}
		
		memset (a[U], 0, sizeof (a[U]));
		P ^= U ^= P ^= U;
	}
	
	for (j = 0; j < 26; ++j) sol = sol + a[U][j];
	
	g << sol % 104659;
	
	g.close ();
	return 0;
}