Cod sursa(job #3304040)

Utilizator Tibi201eweREWR Tibi201 Data 19 iulie 2025 21:00:15
Problema Lista lui Andrei Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <stdio.h>
#define MAXN 1000
#define MOD 104659
#define SIGMA 26

int dp[MAXN+1][SIGMA];
int v[SIGMA][SIGMA];

int main()
{
    FILE *fin, *fout;
    int n,m,i,j,k,total;
    char c1,c2;
    fin=fopen("nrcuv.in", "r");
    fscanf(fin, "%d%d ", &n, &m);
    for(i=0; i<m; i++){
      c1=fgetc(fin);
      fgetc(fin);
      c2=fgetc(fin);
      fgetc(fin);
      c1-='a'; c2-='a';
      v[c1][c2]=1;
      v[c2][c1]=1;
    }
    fclose(fin);
    for(i=0; i<SIGMA; i++){
      dp[1][i]=1;
    }
    for(i=2; i<=n; i++)
      for(j=0; j<SIGMA; j++)
        for(k=0; k<SIGMA; k++)
          if(v[j][k]==0)
            dp[i][j]=(dp[i][j]+dp[i-1][k])%MOD;
    total=0;
    for(i=0; i<SIGMA; i++){
      total=(total+dp[n][i])%MOD;
    }
    fout=fopen("nrcuv.out", "w");
    fprintf(fout, "%d", total);
    fclose(fout);
    return 0;
}