Pagini recente » Cod sursa (job #2765648) | Cod sursa (job #1026319) | Profil Zamolxis666 | Cod sursa (job #2934636) | Cod sursa (job #710330)
Cod sursa(job #710330)
//Manghiuc Bogdan
#include<fstream>
using namespace std;
ifstream f("nrcuv.in");
ofstream g("nrcuv.out");
int k;
int N,M,a[27][27],v[1000],v1[1000],v2[1000],u[1000];
int putere(int N)
{
k=2;
int i,j,t;
for(i=1;i<=N-1;i++)
{
v2[1000]=0;
t=0;
for(j=1;j<=k+1;j++)
{
v1[1000-j+1]=(6*v[1000-j+1]+t)%10;
t=(6*v[1000-j+1]+t)/10;
}
t=0;
for(j=1;j<=k+1;j++)
{
v2[1000-j]=(2*v[1000-j+1]+t)%10;
t=(2*v[1000-j+1]+t)/10;
}
t=0;
for(j=1;j<=k+2;j++)
{
v[1000-j+1]=(v1[1000-j+1]+v2[1000-j+1]+t)%10;
t=(v1[1000-j+1]+v2[1000-j+1]+t)/10;
}
k+=2;
}
return k;
}
int main()
{
long long p=0;
f>>N>>M;
if(N==1)
{
g<<26-M;
}
else
{
int i,j;
char l1,l2;
for(i=1;i<=M;i++)
{
f>>l1;f>>l2;
if(a[l1-'a'+1][l2-'a'+1]==0)
{
a[l1-'a'+1][l2-'a'+1]=1;
a[l1-'a'+1][0]++;
}
if(a[l2-'a'+1][l1-'a'+1]==0)
{
a[l2-'a'+1][l1-'a'+1]=1;
a[l2-'a'+1][0]++;
}
}
v[1000]=6;
v[999]=2;
for(i=1;i<=26;i++)
p=p+(N-1)*a[i][0];
k=putere(N);
i=1000;
while(p)
{
u[i]=p%10;
p/=10;
i--;
}
for(j=1000;j>i;j--)
if(v[j]<u[j])
{
v[j-1]--;
v[j]=v[j]-u[j]+10;
}
while(v[1000-k+1]==0)
k--;
for(i=k;i>0;i--)
g<<v[1000-i+1];
}
f.close();
g.close();
return 0;
}