Cod sursa(job #363173)

Utilizator nicolaetitus12Nicolae Titus nicolaetitus12 Data 12 noiembrie 2009 00:56:12
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <stdio.h>
#define MOD 104659
#define N 1001

int mat[N][26];
int a[30][30];

int main ()
{FILE *fin,*fout;
 fin=fopen("nrcuv.in","r");
 fout=fopen("nrcuv.out","w");

 if(!fin&&!fout)return 0;
 int n,m,i,j,k,s;
 char l1,l2;

 fscanf(fin,"%d %d\n",&n,&m);
 for (i=0;i<m;i++)
 {fscanf(fin,"%c %c\n",&l1,&l2);
  l1-='a';
  l2-='a';
  a[l1][l2]=1;
  a[l2][l1]=1;
 }

 for (i=0;i<26;i++)
 {mat[0][i]=1;
 }

 for (j=1;j<n;j++)
 {
  for (i=0;i<26;i++)
  {for (k=0;k<26;k++)
   {
    if(a[i][k]==0)
    {mat[j][i]+=mat[j-1][k];
    }
   }
   mat[j][i]=mat[j][i]%MOD;
  }
 }
 for (i=0,s=0;i<26;i++)
 {s+=mat[n-1][i];
 }
 s=s%MOD;
 fprintf(fout,"%d",s);
 fclose(fout);
 return 0;
}