Cod sursa(job #1875570)

Utilizator MirunaMMiruna Mitu MirunaM Data 11 februarie 2017 12:14:53
Problema Lista lui Andrei Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<stdio.h>
long long rez[1005][30];
int a[30][30];
int main(){
    freopen("nrcuv.in","r",stdin);
    freopen("nrcuv.out","w",stdout);
    int m,n,i,j,rasp=0,c1,c2;
    char x1,x2;
    scanf("%d%d\n",&n,&m);
    for(i=1;i<=m;i++){
        scanf("%c %c\n",&x1,&x2);
        c1=x1-'a'+1;
        c2=x2-'a'+1;
        if(a[c1][c2]==0){
            a[c1][c2]=1;
            a[c1][0]++;
        }
        if(a[c2][c1]==0){
            a[c2][c1]=1;
            a[c2][0]++;
        }
    }
    for(i=1;i<=26;i++)
        rez[1][i]=1;
    for(i=2;i<=n;i++){
        for(j=1;j<=26;j++)
            rez[i][j]=rez[i-1][j]*(26-a[j][0])%104659;
    }
    for(i=1;i<=26;i++)
        rasp=(rasp+rez[n][i])%104659;
    printf("%d",rasp);
    return 0;
}