Cod sursa(job #1024186)

Utilizator irinaneaguIrina Neagu irinaneagu Data 8 noiembrie 2013 12:50:11
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<cstdio>
int rez,m[1001][28];
bool comp[28][28];
const int K=104659;
int main(){
    int n,i,j,w,k;
    char x,y,c;
    freopen("nrcuv.in","r",stdin);
    freopen("nrcuv.out","w",stdout);
    scanf("%d%d%c",&n,&k,&c);
    for(i=1;i<=k;i++){
        scanf("%c%c%c%c",&x,&c,&y,&c);
        comp[x-'a'+1][y-'a'+1]=comp[y-'a'+1][x-'a'+1]=true;
    }

    for(i=1;i<=26;i++)
        m[1][i]=1;
    for(i=1;i<=n;i++)
        for(j=1;j<=26;j++){
            for(w=1;w<=26;w++)
                if(comp[j][w]==false||comp[w][j]==false)
                    m[i][j]=(m[i][j]%K+m[i-1][w]%K)%K;
        }
    for(i=1;i<=26;i++)
        rez=(rez%K+m[n][i]%K)%K;
    printf("%d",rez);
    return 0;
}