Pagini recente » Cod sursa (job #2295511) | Cod sursa (job #2349814) | Cod sursa (job #2649914) | Cod sursa (job #885993) | Cod sursa (job #945158)
Cod sursa(job #945158)
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("sarpe.in"); ofstream fout("sarpe.out");
const int maxn=2005;
int N[maxn],i,j,M[maxn],n;
char s[maxn];
int main()
{
fin >> s;
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];
fout << M[M[0]];
for(i=M[0]-1;i;--i)
fout << M[i];
fout << "\n";
fin.close(); fout.close();
return 0;
}