Pagini recente » Cod sursa (job #659089) | Cod sursa (job #3138855) | Cod sursa (job #951564) | Cod sursa (job #2803179) | Cod sursa (job #944634)
Cod sursa(job #944634)
#include <fstream>
using namespace std;
ifstream in ("nrcuv.in");
ofstream out ("nrcuv.out");
int v[27],ap[27],K=0;
char c[27][27];
const int M=104659;
long long parcurge( long long sum)
{
long long sum2=0;
for(int i=0; i<26; i++)
{
v[i]=(sum-v[i]);
sum2=(v[i]+sum2)%M;
}
return sum2;
}
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]++;
}
}
long long sum=0;
for(i=0; i<26; i++)
{
v[i]=26-ap[i];
sum=v[i]+sum;
}
for(i=2; i<=n-1; i++)
{
sum=parcurge(sum%M);
}
if(sum<0)
out<<sum+M;
else
out<<sum;
return 0;
}