Cod sursa(job #34257)

Utilizator cos_minBondane Cosmin cos_min Data 20 martie 2007 14:51:01
Problema Lista lui Andrei Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <stdio.h>

#define in "nrcuv.in"
#define out "nrcuv.out"
#define dim 1001

int a[28][28], m[dim][28];
int n, t;

int main()
{
    char x, y;
    FILE *fin = fopen(in,"r");
    freopen(out,"w",stdout);
    
    fscanf(fin,"%d%d",&n,&t);
    fscanf(fin,"\n");
    
    char linie[5];
    
    for ( int i = 1; i <= t; i++ )
    {
        fgets(linie,5,fin);
        x = linie[0];
        y = linie[2];
        a[(int)x-48-48][(int)y-48-48] = a[(int)y-48-48][(int)x-48-48] =1;
    }
    
    for ( int i = 1; i <= 26; i++ ) m[1][i] = 1;
    
    for ( int i = 2; i <= n; i++ )
    {
        for ( int j = 1; j <= 26; j++ )
        {
            for ( int k = 1; k <= 26; k++ )
            {
                if ( !a[j][k] ) m[i][j] += m[i-1][k]%104659;
            }
        }
    }
    
    int v = 0;
    
    for ( int i = 1; i <= 27; i++ )
        v += m[n][i]%104659;
    
    printf("%d",v);
}