Pagini recente » Cod sursa (job #1936949) | Cod sursa (job #2958633) | Cod sursa (job #2228650) | Cod sursa (job #569012) | Cod sursa (job #944626)
Cod sursa(job #944626)
#include <fstream>
using namespace std;
ifstream in ("nrcuv.in");
ofstream out ("nrcuv.out");
int v[1001][27],ap[27],K=0;
char c[27][27];
const int M=104659;
unsigned long long parcurge(unsigned long long sum)
{
for(int i=0;i<26;i++)
{
v[K][i]=sum-v[K-1][i];
sum+=v[K][i];
sum%=M;
}
return sum;
}
int main()
{
int n,m,i,j;
bool bun;
char a,b;
in>>n>>m;
for(i=1; i<=m; i++)
{
in>>a>>b;
a=a-97;
b=b-97;
bun=1;
for(j=0; j<ap[a]; j++)
if(c[a][j]==b)
bun=0;
if(bun==1)
{
c[a][ap[a]]=b;
ap[a]++;
}
bun=1;
for(j=0; j<ap[b]; j++)
if(c[b][j]==a)
bun=0;
if(bun==1)
{
c[b][ap[b]]=a;
ap[b]++;
}
}
unsigned long long sum=0;
for(i=0; i<26; i++)
v[1][i]=1;
for(i=0; i<26; i++)
{
v[2][i]=26-ap[i];
sum=(v[2][i]+sum)%M;
}
K=2;
for(i=2;i<=n-1;i++)
{
sum=parcurge(sum);
K++;
}
out<<sum;
return 0;
}