Pagini recente » Cod sursa (job #3223411) | Cod sursa (job #1410920) | Cod sursa (job #2136932) | Cod sursa (job #2690548) | Cod sursa (job #598153)
Cod sursa(job #598153)
#include <fstream>
using namespace std;
ifstream in("prod.in");
ofstream out("prod.out");
int v[10],A[501],B[501],C[501];
int main(){
int aux=0,alfa=9,i,j,t;
for(i=1;i<=9;i++){
in>>v[i];
}
while(1){
if(v[alfa]!=0 && aux==0){
A[0]++;
A[1]=alfa;
v[alfa]--;
aux++;
}
if(v[alfa]!=0 && aux==1){
B[0]++;
B[1]=alfa;
v[alfa]--;
break;
}
if(v[alfa]==0)
alfa--;
}
while(alfa>0){
if(v[alfa]!=0 && aux==0){
A[0]++;
A[A[0]]=alfa;
v[alfa]--;
aux++;
continue;
}
if(v[alfa]!=0 && aux==1){
B[0]++;
B[B[0]]=alfa;
v[alfa]--;
aux=0;
continue;
}
if(v[alfa]==0)
alfa--;
}
for(i=1;i<=A[0]/2;i++){
aux=A[i];
A[i]=A[A[0]-i+1];
A[A[0]-i+1]=aux;
}
for(i=1;i<=B[0]/2;i++){
aux=B[i];
B[i]=B[B[0]-i+1];
B[B[0]-i+1]=aux;
}
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--){
out<<C[i];
}
return 0;
}