Pagini recente » Cod sursa (job #2647222) | Cod sursa (job #1020167) | Cod sursa (job #1042728) | Cod sursa (job #2510462) | Cod sursa (job #944628)
Cod sursa(job #944628)
#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;
unsigned long long parcurge(unsigned long long sum)
{
unsigned long long sum2;
for(int i=0; i<26; i++)
{
v[i]=sum-v[i];
sum2=(v[i]+sum)%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]++;
}
}
unsigned 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);
}
out<<sum;
return 0;
}