Pagini recente » Cod sursa (job #948764) | Cod sursa (job #359564) | Cod sursa (job #916868) | Cod sursa (job #900856) | Cod sursa (job #735732)
Cod sursa(job #735732)
#include<fstream>
using namespace std;
ifstream f("prod.in");
ofstream g("prod.out");
int n,m;
int ct[10],v[1001],a[501],b[501],c[1001];
void prod()
{
int i,j,t=0,p,n=b[0];
c[0]=0;
for(i=n;i;--i)
{ p=t;
for(j=n;j>=i;--j)
p+=a[j]*b[i+n-j];
t=p/10;
c[0]++;
c[c[0]]=p%10;
}
for(i=n-1;i;--i)
{
p=t;
for(j=1;j<=i;++j)
p+=a[j]*b[i-j+1];
t=p/10;
c[0]++;
c[c[0]]=p%10;
}
while(t)
{
c[0]++;
c[c[0]]=t%10;
t/=10;
}
}
int main()
{
int i,j;
for(i=1;i<10;++i)
f>>ct[i];
for(i=9;i>=0;--i)
for(j=1;j<=ct[i];++j)
v[++n]=i;
m=n/2;
for(i=1;i<=2*m&&a[i/2]==b[i/2];i+=2)
{
a[0]++;
a[a[0]]=v[i];
b[0]++;
b[b[0]]=v[i+1];
}
for(;i<=2*m;i+=2)
{
a[0]++;
a[a[0]]=v[i+1];
b[0]++;
b[b[0]]=v[i];
}
if(n>2*m)
{
b[0]++;
b[b[0]]=v[i];
}
if(a[0]<b[0])
{
for(i=b[0];i>1;--i)
a[i]=a[i-1];
a[1]=0;
a[0]=b[0];
}
prod();
for(i=c[0];i;--i)
g<<c[i];
return 0;
}