Pagini recente » Cod sursa (job #2111534) | Cod sursa (job #3264451) | Cod sursa (job #2713686) | Cod sursa (job #2310590) | Cod sursa (job #1024168)
#include <fstream>
using namespace std;
ifstream in ("nrcuv.in");
ofstream out ("nrcuv.out");
const int M=104659;
int v[1001][27],K=0;
bool icp[26][26];
long long par(long long suma)
{
long long suma2=0;
for(int i=0; i<26; i++)
{
for(int j=0; j<26; j++)
if(icp[i][j]==0)
v[K][i]=(v[K][i]+v[K-1][j])%M;
suma2=(v[K][i]+suma2)%M;
}
return suma2;
}
int main()
{
int n,m,i,j;
char a,b;
in>>n>>m;
if(n==1)
{
out<<"26";
return 0;
}
for(i=1; i<=m; i++)
{
in>>a>>b;
a=a-97;
b=b-97;
icp[a][b]=icp[b][a]=1;
}
long long suma=0;
for(i=0;i<26;i++)
{
for(j=0;j<26;j++)
if(icp[i][j]==0)
v[2][i]++;
suma=(v[2][i]+suma)%M;
}
K=3;
for(i=2;i<=n-1;i++)
{
suma=par(suma);
K++;
}
return 0;
}