Cod sursa(job #594096)

Utilizator geniucosOncescu Costin geniucos Data 6 iunie 2011 11:05:47
Problema Lista lui Andrei Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<stdio.h>
using namespace std;
FILE *f,*g;
char c1,c2;
int s,nr,i,j,k,n,m,a[3][27],b[27][27],p=2,u=1,aux;
int main()
{
f=fopen("nrcuv.in","r");
g=fopen("nrcuv.out","w");
fscanf(f,"%d",&n);
fscanf(f,"%d",&m);
for(i=1;i<=m;i++)
{
	fscanf(f," %c",&c1);
	fscanf(f," %c",&c2);
	b[c1-96][c2-96]=1;
	b[c2-96][c1-96]=1;
}
for(j=1;j<=26;j++)
	a[1][j]=1;
for(i=2;i<=n;i++)
{
	for(j=1;j<=26;j++)
	{
		for(k=1;k<=26;k++)
		{
			if(b[k][j]==0)
			{
				a[p][k]=a[p][k]+a[u][k];
				a[p][k]=a[p][k]%104569;
			}
		}
	}
	for(j=1;j<=26;j++) a[u][j]=0;
	aux=p;
	p=u;
	u=aux;
}
for(i=1;i<=26;i++)
	s=(s+a[2][i])%104569;
fprintf(g,"%d",s);
fclose(f);
fclose(g);
return 0;
}