Cod sursa(job #1204918)

Utilizator IulianBoboUAIC Boboc Iulian IulianBobo Data 4 iulie 2014 13:50:50
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<fstream>
using namespace std;
long optim[1001][27],viz[27][27],sum;
int main()
{
	ifstream fin("nrcuv.in");
	ofstream fout("nrcuv.out");
	int m,n,i,j,k,urmator=1,prev;
	char x,y;
	fin>>n>>m;
	for(i=0;i<26;++i) optim[urmator][i]=1;
	for(i=1;i<=m;++i)
	{
		fin>>x>>y;
		viz[x-'a'][y-'a']=viz[y-'a'][x-'a']=1;
	}
	for(k=2;k<=n;++k)
	{
		urmator=2-urmator+1;
		prev=2-urmator+1;
		for(i=0;i<26;++i)
		{
			optim[urmator][i]=0;
			for(j=0;j<26;++j)
			{
				if(!viz[i][j])
				{
					optim[urmator][i]=optim[urmator][i]+optim[prev][j];
					optim[urmator][i]%=104659;
				}
			}
		}
	}
	for(i=0;i<26;++i)
	{
		sum=sum+optim[urmator][i];
		sum%=104659;
	}
	fout<<sum;
	fin.close();
	fout.close();
	return 0;
}