Cod sursa(job #908503)

Utilizator Detrol2kGuianu Leon Detrol2k Data 9 martie 2013 15:48:44
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <fstream>
#include <algorithm>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>
#include <string.h>
#include <vector>
using namespace std;

int dp[1010][30], ad[30][30];

int main()
{
	ifstream fin("nrcuv.in");
	ofstream fout("nrcuv.out");
    
    int k, i, j, n, m, sum;
    char x, y;
    
    //Read
	fin>>n>>m;
	for(i=1; i<=m; i++)
 	{
      	fin>>x>>y;
        ad[x-'a'+1][y-'a'+1] = 1;
        ad[y-'a'+1][x-'a'+1] = 1;
    }
        
        
 	//Compute
    for(j=1; j<=26; j++)
        dp[1][j] = 1;
    for(i=2; i<=n; i++)
        for(j=1; j<=26; j++)
        	for(k=1; k<=26; k++)
            	if(ad[j][k] == 0)
         		{
                	dp[i][k] += dp[i-1][j];
                    dp[i][k] = dp[i][k]%104659;
            	}
    sum = 0;
    for(j=1; j<=26; j++)
    {
    	sum = sum+dp[n][j];
        sum %= 104659;
    }
    
    
    //Print
    fout<<sum;
}