Cod sursa(job #495385)

Utilizator andra23Laura Draghici andra23 Data 24 octombrie 2010 22:19:17
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include<fstream>
#define sigma 26
#define nmax 1005
#define r 104659

using namespace std;

int c1[sigma+5], c2[sigma+5], a[sigma+5][sigma+5];

int main(){
    ifstream f("nrcuv.in");
    ofstream g("nrcuv.out");
    int n, i, j, m, k;
    char x, y;
    f >> n >> m;
    for (i = 1; i <= m; i++){
        f >> x >> y;
        a[x-'a'][y-'a'] = 1;  
    }   
    
    for (i = 0; i < sigma; i++) 
        c1[i] = 1;
        
    int nrcuv = 0;
    for (i = 2; i <= n; i++) {
        for (j = 0; j < sigma; j++)
            for (k = 0; k < sigma; k++) {
                if (a[j][k] == 0 && a[k][j] == 0){
                    c2[k] = (c2[k] + c1[j])%r;    
                }    
            }
        for (j = 0; j < sigma; j++) {
            c1[j] = c2[j];
            c2[j] = 0;
        }        
    }
    
    for (i = 0; i < sigma; i++)
        nrcuv = (nrcuv + c1[i])%r;
    
    g<<nrcuv<<'\n';
    
    return 0;
}