Pagini recente » Cod sursa (job #2110563) | Cod sursa (job #33631) | Cod sursa (job #553708) | Cod sursa (job #2719189) | Cod sursa (job #2025825)
#include <cstdio>
using namespace std;
int f[10];
int nr1[1001];
int nr2[1001];
int v[2][1001],s;
void mutadr (int v[]){
int i;
for (i=v[0]-1;i>0;i--)
v[i+1]=v[i];
}
void mutast (int v[]){
int i;
for (i=2;i<=v[0];i++)
v[i-1]=v[i];
}
void prod (int k){
int i,t=0,j;
v[k][0]=nr1[0]+nr2[0]-1;
for (i=1;i<=nr1[0]+nr2[0];i++)
v[k][i]=0;
for (i=1;i<=nr1[0];i++)
for (j=1;j<=nr2[0];j++)
v[k][i+j-1]+=nr1[i]*nr2[j];
for (i=1;i<=v[k][0];i++){
v[k][i]+=t;
t=v[k][i]/10;
v[k][i]%=10;
}
if (t)
v[k][++v[k][0]]=t;
}
int main()
{
FILE *fin=fopen ("prod.in","r");
FILE *fout=fopen ("prod.out","w");
int i,cf1,c;
s=0;
for (i=1;i<=9;i++){
fscanf (fin,"%d",&f[i]);
s+=f[i];
}
i=9;
nr1[0]++;
nr2[0]++;
while (f[i]==0)
i--;
nr1[1]=i;
f[i]--;
while (f[i]==0)
i--;
nr2[1]=i;
f[i]--;
c=2;
s-=2;
while (s>0){
while (f[i]==0)
i--;
cf1=i;
f[i]--;
if (c==2){
nr2[0]++;
mutadr(nr2);
nr2[1]=cf1;
c=1;
}
else {
nr1[0]++;
mutadr(nr1);
nr1[1]=cf1;
c=2;
}
s--;
}
prod (0);
for (i=v[0][0];i>0;i--)
fprintf (fout,"%d",v[0][i]);
return 0;
}