Pagini recente » Cod sursa (job #2878499) | Cod sursa (job #2768694) | Cod sursa (job #366633) | Cod sursa (job #2627980) | Cod sursa (job #76191)
Cod sursa(job #76191)
# include <stdio.h>
const long int MAXN=1000;
const int TRANSF=(int)'a'-1;
long int n,m;
long int a[MAXN+1][27];
long int allowed[27][27];
const long int MODULO=104659;
void citire()
{
FILE *f=fopen("nrcuv.in","r");
fscanf(f,"%ld%ld",&n,&m);
long int i;
char aa,bb,s[100];
fgets(s,100,f);
for (i=1;i<=m;i++)
{
fgets(s,100,f);
aa=s[0];bb=s[2];
allowed[(int)aa-TRANSF][(int)bb-TRANSF]=1;
allowed[(int)bb-TRANSF][(int)aa-TRANSF]=1;
}
fclose(f);
}
void scrie(long int sol)
{
FILE *g=fopen("nrcuv.out","w");
fprintf(g,"%ld\n",sol);
fcloseall();
}
void calculeaza()
{
long int i,j,jj;
for (j=1;j<=26;j++) a[1][j]=1;
for (i=2;i<=n;i++)
for (j=1;j<=26;j++)
{
for (jj=1;jj<=26;jj++)
if (allowed[j][jj]==0)
{
a[i][j]+=a[i-1][jj];
a[i][j]%=MODULO;
}
}
long int sol=0;
for (j=1;j<=26;j++)
{
sol+=a[n][j];
sol%=MODULO;
}
scrie(sol);
}
int main()
{
citire();
calculeaza();
return 0;
}