Cod sursa(job #46106)

Utilizator mika17Mihai Alex Ionescu mika17 Data 2 aprilie 2007 12:41:48
Problema Lista lui Andrei Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <stdio.h>
#define MOD 104659
#define NLIT 26
#define fin "nrcuv.in"
#define fout "nrcuv.out"
#define NMAX 1001
#define FOR(i,a,b) for(int i = a ; i < b ; ++i)
int s[NMAX],a[NLIT][NLIT],N,M;

void readData()
{
 int sim = 0,eg = 0;
 freopen(fin,"r",stdin);
 scanf("%d %d\n",&N,&M);
 FOR(i,0,M)
 {
  char c1,c2;
  scanf("%c %c\n",&c1,&c2);
  int x = c1 - 'a' , y = c2 - 'a';
  if(!a[x][y])
  {
   if(x==y) ++eg;
    else ++sim;
   a[x][y] = a[y][x] = 1;
  }
 }
 M = eg + 2 * sim;
 fclose(stdin);
}

void buildSol()
{
s[1] = NLIT;
for(int i = 2; i <= N ;++i)
 s[i] = (NLIT * s[i-1] - M) % MOD;
}

void writeData()
{
  freopen(fout,"w",stdout);
  printf("%d\n",s[N]);
  fclose(stdout);
}

int main()
{
 readData();
 buildSol();
 writeData();
 return 0;
}