Cod sursa(job #967917)

Utilizator Gusti666Lucaciu Catalin Gusti666 Data 28 iunie 2013 20:20:24
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 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[1005][300],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];
            dp[i][j]%=104659;
        }
    }

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



    return 0;
}