Pagini recente » Cod sursa (job #1759913) | Cod sursa (job #2308590) | Istoria paginii runda/onis-2014-runda-2/clasament | Cod sursa (job #3147091) | Cod sursa (job #1828975)
#include <cstdio>
#define MAXN 1009
int a[MAXN], b[MAXN], c[MAXN*MAXN];
/*
#define MAXN 6
int n, ans, v[2*MAXN];
bool viz[2*MAXN];
inline bool ok(int a, int b){
return (a==b-1);
}
void bkt(int p){
if(p==2*n){
int i=0;
while((i<2*n)&&((v[i]==2*n-1)||((i!=0)&&(i!=n)&&(ok(v[i], v[i-1])))||((i!=n-1)&&(i!=2*n-1)&&(ok(v[i], v[i+1])))||((i<n)&&(ok(v[i], v[i+n])))||((i>=n)&&(ok(v[i], v[i-n]))))) i++;
ans+=(i==2*n);
}else{
for(int i=0; i<2*n; i++){
if(!viz[i]){
viz[i]=1;
v[p]=i;
bkt(p+1);
viz[i]=0;
}
}
}
}
*/
int main(){
FILE *fin, *fout;
fin=fopen("sarpe.in", "r");
fout=fopen("sarpe.out", "w");
/*for(n=1; n<=MAXN; n++){
ans=0;
bkt(0);
fprintf(fout, "%d\n", ans);
}*/
char ch=fgetc(fin);
while(ch!='\n'){
a[++a[0]]=ch-'0';
ch=fgetc(fin);
}
for(int i=1, j=a[0]; i<j; i++, j--){
int aux=a[i];
a[i]=a[j];
a[j]=aux;
}
if((a[0]==1)&&(a[1]==1)) fprintf(fout, "2\n");
else if((a[0]==1)&&(a[1]==2)) fprintf(fout, "8\n");
else{
for(int i=0; i<=a[0]; i++)
b[i]=a[i];
b[1]--;
int i=1;
while(b[i]<0){
b[i]+=10;
i++;
b[i]--;
}
while(b[b[0]]==0) b[0]--;
for(i=1; i<=a[0]; i++)
for(int j=1; j<=b[0]; j++)
c[i+j-1]+=a[i]*b[j];
c[0]=a[0]+b[0]-1;
i=1;
int tr=0;
while((i<=c[0])||(tr)){
tr+=c[i];
c[i]=tr%10;
tr/=10;
i++;
}
i--;
if(i>c[0])
c[0]=i;
i=1;
tr=0;
while((i<=c[0])||(tr)){
tr+=2*c[i];
c[i]=tr%10;
tr/=10;
i++;
}
i--;
if(i>c[0])
c[0]=i;
c[1]+=4;
i=1;
while(c[i]>10){
c[i]-=10;
i++;
c[i]++;
}
for(int i=c[0]; i>0; i--)
fputc(c[i]+'0', fout);
fputc('\n', fout);
}
fclose(fin);
fclose(fout);
return 0;
}