Pagini recente » Cod sursa (job #469656) | Cod sursa (job #3293029) | Cod sursa (job #2283615) | Cod sursa (job #2778604) | Cod sursa (job #868516)
Cod sursa(job #868516)
#include<fstream>
#define NMax 26
#define alpha 97
#define MOD 104659
#define NMAX 1001
using namespace std;
ifstream f("nrcuv.in");
ofstream g("nrcuv.out");
int viz[NMax][NMax],DP[NMAX][NMax];
int m,n;
char a,b;
int main()
{
int i;
f>>n>>m;
//citire
for(i=1;i<=m;i++)
{
f>>a>>b;
viz[a-alpha][b-alpha]=1;
viz[b-alpha][a-alpha]=1;
}
//initializare
for(i=0;i<=NMax-1;i++)
DP[1][i]=1;
int j,k;
//dinamica
for(i=2;i<=n;i++)
{
for(j=0;j<=NMax-1;j++)
{
for(k=0;k<=NMax-1;k++)
if(viz[k][j]==0)//daca poate fi folosit
DP[i][j]=(DP[i][j]+DP[i-1][k])%MOD;//dinamica
}
}
int sol=0;
//afisare
for(i=0;i<=NMax-1;i++)
sol=sol+DP[n][i],sol%=MOD;
g<<sol%MOD;
f.close();
g.close();
return 0;
}