Pagini recente » Cod sursa (job #654557) | Cod sursa (job #2648555) | Cod sursa (job #204817) | Cod sursa (job #2567548) | Cod sursa (job #534016)
Cod sursa(job #534016)
#include <stdio.h>
#include <algorithm>
using namespace std;
int a[501],b[501],c[250001],ok,i,j,n,m,v[1001],x,t;
int main()
{
freopen("prod.in","r",stdin);
freopen("prod.out","w",stdout);
for (i=1;i<10;++i)
{
scanf("%d",&x);
for (j=1;j<=x;++j)
{
++n;
v[n]=i;
}
}
reverse(v+1,v+n+1);
ok=0;m=0;
for (i=1;i<n;i+=2)
{
if (ok)
{
++m;
a[m]=v[i];
b[m]=v[i+1];
if ((!ok)&&(a[m]!=b[m])) ok=1-ok;
}
else
{
++m;
b[m]=v[i];
a[m]=v[i+1];
if ((!ok)&&(a[m]!=b[m])) ok=1-ok;
}
}
a[0]=m;b[0]=m;
if(n%2)
{
for(i=1;a[i]==b[i];++i);
if(a[i]<b[i])
{
++a[0];
a[a[0]]=v[n];
}
else b[b[0]]=v[n];
}
reverse(a+1,a+a[0]+1);
reverse(b+1,b+b[0]+1);
for (i=1;i<=a[0];++i)
{
for (t=0,j=1;j<=b[0]||t;++j,t/=10)
c[i+j-1]=(t+=c[i+j-1]+a[i]*b[j])%10;
if (i+j-2>c[0]) c[0]=i+j-2;
}
for (i=c[0];i>0;--i) printf("%d",c[i]);
return 0;
}