Pagini recente » Cod sursa (job #2574251) | Cod sursa (job #1048110) | Cod sursa (job #1780640) | Cod sursa (job #832709) | Cod sursa (job #133793)
Cod sursa(job #133793)
#include<stdio.h>
#include<string.h>
long int n,k,j;
long long int p,ne;
char sc[35],sf[35],al[35],c;
void prel(long int cr,long int ec);
int main()
{
FILE *f,*g;f=fopen("expresii2.in","r");g=fopen("expresii2.out","w");
fscanf(f,"%ld%ld%lld",&n,&k,&p);
c='A';al[0]=c;
for(j=1;j<=30;j++)al[j]=c++;
for(j=1;j<=k;j++)
{ sc[0]=al[j];prel(n-1,1);}
fprintf(g,"%lld\n",ne);
fprintf(g,"%s\n",sf);
fcloseall();
return 0;
}
void prel(long int cr,long int ec)
{ long int i;
if(ec<=0)return;
if(cr<ec-1)return;
if(!cr)
{ if(ec>1)return;
ne++;
if(ne==p)strcpy(sf,sc);
return;
}
if(cr==ec-1)
{ sc[n-cr]='+';prel(cr-1,ec-1);
sc[n-cr]='*';prel(cr-1,ec-1);
return;
}
for(i=1;i<=k;i++)
{sc[n-cr]=al[i];prel(cr-1,ec+1);}
sc[n-cr]='+';prel(cr-1,ec-1);
sc[n-cr]='*';prel(cr-1,ec-1);
sc[n-cr]='!';prel(cr-1,ec);
}