Cod sursa(job #902327)

Utilizator Sanduleac_VladSanduleac Vllad Alexandru Sanduleac_Vlad Data 1 martie 2013 13:39:45
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <stdio.h>

long n, m, sum;
bool compat[27][27];
long v[1001][27];
char x, y;

int main() {
     long i, j, i1;
     freopen("nrcuv.in", "r", stdin);
     freopen("nrcuv.out", "w", stdout);
     scanf("%ld%ld\n", &n, &m);
     for(i = 1; i <= m; i++) {
          scanf("%c %c\n", &x, &y);
          compat[x - 'a'][y - 'a'] = compat[y - 'a'][x - 'a'] = 1;
     }
     for(i = 0; i <= 'z' - 'a'; i++)
          v[1][i] = 1;
     for(i = 2; i <= n; i++)
          for(j = 0; j <= 'z' - 'a'; j++)
               for(i1 = 0; i1 <= 'z' - 'a'; i1++)
                    if(!compat[j][i1]) {
                         v[i][j] = (v[i][j] + v[i - 1][i1]) % 104659;
                    }
     for(i = 0; i <= 'z' - 'a'; i++)
          sum = (sum + v[n][i]) % 104659;
     printf("%ld", sum);
     return 0;
}