Pagini recente » Cod sursa (job #271584) | Cod sursa (job #1691233) | Cod sursa (job #1267826) | Cod sursa (job #1841465) | Cod sursa (job #496841)
Cod sursa(job #496841)
#include<fstream.h>
int fr[10],x[1000],a[504],b[504],c[1011];
int mai_mic_egal(int a[],int b[])
{
if(a[0]<b[0])return 1;
if(a[0]>b[0])return 0;
int i;
for(i=a[0];i>=1;i--)
{if(a[i]<b[i])return 1;
if(a[i]>b[i])return 0;
}
return 1;
}
void prod()
{
int i,j,r,k;
k=a[0]+b[0]-1;
for(i=1;i<=a[0];i++)
for(j=1;j<=b[0];j++)
c[i+j-1]+=a[i]*b[j];
r=0;
for(i=1;i<=k;i++)
{
r=c[i]/10;
c[i]=c[i]%10;
}
if(r>0){k++;c[k]=r;}
c[0]=k;
}
void 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--;
}
}
//int mai_mic_egal(int[],int []);
int main()
{
ifstream f("prod.in");
ofstream g("prod.out");
int i,n,j;
for(i=1;i<=9;i++)f>>fr[i];
n=0;
for(i=9;i>=1;i--)
for(j=1;j<=fr[i];j++)
x[++n]=i;
a[0]=0;b[0]=0;
for(i=1;i<=n;i++)
if(mai_mic_egal(a,b))
{a[0]++;a[a[0]]=x[i];}
else{b[0]++;b[b[0]]=x[i];}
invers(a);
invers(b);
prod();
for(i=c[0];i>=1;i--)g<<c[i];
g<<'\n';
}