Pagini recente » Cod sursa (job #230880) | Cod sursa (job #2311459) | Cod sursa (job #1425177) | Cod sursa (job #537477) | Cod sursa (job #1752739)
#include <stdio.h>
#define maxc 1005
int fr[10],a[maxc],b[maxc],c[maxc*maxc];
bool cmp(){
int i;
for(i=0;i<=a[0];i++){
if(a[i]<b[i])
return true;
if(a[i]>b[i])
return false;
}
return true;
}
int main(){
FILE *fin,*fout;
fin=fopen("prod.in","r");
fout=fopen("prod.out","w");
int i,j,k,n,m,ad,cif,cop;
cif=0;
for(i=1;i<=9;i++){
fscanf(fin,"%d",&fr[i]);
cif+=fr[i];
}
for(i=9;i>=1;i--)
while(fr[i]!=0){
if(cmp()==true){
a[0]++;
a[a[0]]=i;
}
else{
b[0]++;
b[b[0]]=i;
}
fr[i]--;
}
n=a[0];
m=b[0];
for(i=1;i<=n/2;i++){
cop=a[n-i+1];
a[n-i+1]=a[i];
a[i]=cop;
}
for(i=1;i<=m/2;i++){
cop=b[m-i+1];
b[m-i+1]=b[i];
b[i]=cop;
}
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
c[j+i-1]+=b[i]*a[j];
k=m+n;
ad=0;
for(i=1;i<=k;i++){
c[i]+=ad;
ad=c[i]/10;
c[i]%=10;
}
if(c[k]==0)
k--;
for(i=k;i>=1;i--)
fprintf(fout,"%d",c[i]);
fclose(fin);
fclose(fout);
return 0;
}