Pagini recente » Cod sursa (job #3143272) | Cod sursa (job #919333) | Cod sursa (job #2317521) | Cod sursa (job #3202921) | Cod sursa (job #945163)
Cod sursa(job #945163)
#include<cstdio>
#include<cstring>
using namespace std;
const char iname[]="sarpe.in";
const char oname[]="sarpe.out";
const int maxn=2005;
int N[maxn],i,j,M[maxn],n;
char s[maxn];
int main()
{
freopen(iname,"r",stdin);
freopen(oname,"w",stdout);
fgets(s,sizeof(s),stdin);
for(n=0;s[n]>='0'&&s[n]<='9';++n);
for(--n;n>=0;n-=3)
{
N[++N[0]]=s[n]-'0';
if(n>0)
N[N[0]]+=(s[n-1]-'0')*10;
if(n>1)
N[N[0]]+=(s[n-2]-'0')*100;
}
if(N[0]==1&&N[1]==1)
{
printf("2\n");
return 0;
}
for(i=1;i<=N[0];++i)
for(j=1;j<=N[0];++j)
M[i+j-1]+=2*N[i]*N[j];
for(i=1;i<=N[0];++i)
M[i]-=2*N[i];
M[1]+=4;
for(M[0]=1;M[0]<2*N[0]||M[M[0]]>0;++M[0])
{
M[M[0]+1]+=M[M[0]]/1000;
M[M[0]]%=1000;
if(M[M[0]]<0)
--M[M[0]+1],M[M[0]]+=1000;
}
while(M[M[0]]==0)
--M[0];
printf("%d",M[M[0]]);
for(i=M[0]-1;i;--i)
printf("%03d",M[i]);
printf("\n");
}