Cod sursa(job #967907)

Utilizator Gusti666Lucaciu Catalin Gusti666 Data 28 iunie 2013 20:12:15
Problema Lista lui Andrei Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <iostream>
#include <fstream>
#define nmax 1000
#define mmax 30

using namespace std;
ifstream f("nrcuv.in");
ofstream g("nrcuv.out");
int i,n,m,dp[nmax][mmax],sum;
bool prieten[300][300];
char j,k,x,y;

int main()
{f>>n;
for(j='a';j<='z';j++)
    for(k='a';k<='z';k++)
        prieten[j][k]=1;
f>>m;
for(i=1;i<=m;i++){
    f>>x;
    f>>y;
    prieten[x][y]=0;
    prieten[y][x]=0;}

for(j='a';j<='z';j++)
    dp[1][j]=1;

for(i=2;i<=n;i++){
    for(j='a';j<='z';j++){
        for(k='a';k<='z';k++){
            if(prieten[j][k]==1&&prieten[k][j]==1)dp[i][j]+=dp[i-1][k];
        }
    }

}
for(j='a';j<='z';j++)
    sum+=dp[n][j];
    g<<sum;


    return 0;
}