Cod sursa(job #769665)

Utilizator MtkMarianHagrSnaf MtkMarian Data 20 iulie 2012 14:29:57
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<iostream>
#include<fstream>
using namespace std;

const int D = 104659;
int main()
{
	ifstream f("nrcuv.in");
	ofstream g("nrcuv.out");

	int **v, n, k,i,j,**l,a,b,sum;

	f>>k;
	f>>n;

	v=new int*[k+3];
	l=new int*[28];


	for(i=1;i<=28;i++)
		l[i]=new int[28];

	for(i=1;i<=k+2;i++)
		v[i]=new int[28];


	char c;

	for(i=1;i<=n;i++)
	{
			f>>c;
			a=c-96;
			f>>c;
			b=c-96;
			l[a][b]=1;
			l[b][a]=1;
			
	}
	for(i=1;i<=26;i++)
	{
		v[1][i]=1;
		
	}
	for(i=2;i<=k;i++)
		for(j=1;j<=26;j++)
		{
			sum=0;
			for(int o=1;o<=26;o++)
			{
				
				if(l[j][o]!=1) sum+=v[i-1][o];
			}
			sum%=D;
			v[i][j]=sum;
		}

	
		

sum=0;
for( i=1;i<=26;i++)
	sum+=v[k][i];

sum%=D;
g<<sum<<endl;
//system("pause");
return 0;
}