Pagini recente » Cod sursa (job #1150491) | Cod sursa (job #1077220) | Cod sursa (job #927797) | Cod sursa (job #1673474) | Cod sursa (job #1537653)
#include <iostream>
#include <fstream>
#define MOD 104659
using namespace std;
long a[27][27]={{1}},b[27][27],n=2,m;
long long sum;
char c1,c2;
void inm(const long a[27][27],const long b[27][27],long c[27][27])
{
long aux[27][27] = {{0}};
for(int i = 0;i<26;i++)
for(int j = 0;j<26;j++)
for(int k = 0;k<26;k++)
aux[i][j] = (aux[i][j] + a[i][k]*b[k][j])%MOD;
for(int i = 0;i<26;i++)
for(int j = 0;j<26;j++)
c[i][j] = aux[i][j];
}
int main()
{
ifstream fi("nrcuv.in");
ofstream fo("nrcuv.out");
fi>>n>>m;
for(int i =0 ;i<26;i++)
{
for(int j=0;j<26;j++)
a[i][j] = 1;
//cout<<a[i][j]<<' ';
//cout<<'\n';
}
for(int i = 0;i<m;i++)
{
fi>>c1>>c2;
a[c1-'a'][c2-'a'] = 0;
a[c2-'a'][c1-'a'] = 0;
}
for(int i = 0;i<26;i++)
b[i][i] = 1;
for(int i = 1;(1<<i)<=n;++i)
{
if( ((1<<i)&n )> 0 )
inm(a,b,b);
inm(a,a,a);
}
for(int i =0 ;i<26;i++)
{
for(int j=0;j<26;j++)
sum = (sum + b[i][j])%MOD;
}
fo<<sum;
fi.close();
fo.close();
return 0;
}