Pagini recente » Cod sursa (job #768790) | Cod sursa (job #470310) | Cod sursa (job #429277) | Cod sursa (job #1658251) | Cod sursa (job #498994)
Cod sursa(job #498994)
#include<fstream.h>
ifstream fin("prod.in");
ofstream fout("prod.out");
int i,j,fr[10],n,a[20],b[20],x[30],c[30],k,t;
int mai_mic_egal(int a[],int b[]);
int invers(int a[]);
void prod( int a[],int b[],int c[]);
int main()
{
for(i=1;i<10;i++)
fin>>fr[i];
n=0;
for(i=9;i>0;i--)
for(j=1;j<=fr[i];j++)
x[n+1]=i;
a[0]=0;
b[0]=0;
for(i=0;i<n;i++)
if(mai_mic_egal(a,b)==1)
{
a[0]++;
a[a[0]]=x[i];
}
else
{
b[0]++;
b[b[0]]=x[i];
}
invers(a);
invers(b);
prod(a,b,c);
for(i=c[0];i>=1;i--)
fout<<c[i];
fout<<'\n';
fin.close();
fout.close();
}
int mai_mic_egal(int a[],int b[])
{
if(a[0]<b[0])
return 1;
if(a[0]>b[0])
return 0;
for(i=1;i<=a[0];i++)
{
if(a[i]>b[i])
return 0;
if(a[i]<b[i])
return 1;
}
return 1;
}
int invers(int a[])
{
int u,v,aux;
u=1;
v=a[0];
while(u<v)
{
aux=a[u];
a[u]=a[v];
a[v]=aux;
u++;
v--;
}
}
void prod( int a[],int b[],int c[])
{
for(i=1;i<=a[0];i++)
for(j=1;j<=b[0];j++)
{
c[i+j-1]=a[i]*b[j]+c[i+j-1];
t=0;
k=a[0]+b[0]+1;
for(i=1;i<=k;i++)
{
c[i]=c[i]+t;
t=c[i]/10;
c[i]=c[i]%10;
}
while(t)
{
k++;
c[k]=t%10;
t/=10;
}
c[0]=k;
}
}