Pagini recente » Cod sursa (job #1979093) | Cod sursa (job #103735) | Cod sursa (job #2381650) | Cod sursa (job #484858) | Cod sursa (job #73576)
Cod sursa(job #73576)
#include<stdio.h>
#include<string.h>
#define VAL 10000000
long n,w;
int q[VAL],e[VAL];
void citire()
{
freopen("sarpe.in","r",stdin);
scanf("%ld", &n);
fclose(stdin);
}
void printare()
{
for (int i=q[0]; i>=1; i--)
printf("%d",q[i]);
}
void transf(long q, int a[VAL])
{
while (q>0)
{
a[++a[0]]=q%10;
q/=10;
}
}
void mult(int A[VAL], int B[VAL])
{
int i, j, t, C[VAL];
memset(C, 0, sizeof(C));
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;
}
memcpy(A, C, sizeof(C));
}
void add(int A[VAL], int B[VAL])
{
int i, t = 0;
for (i=1; i<=A[0] || i<=B[0] || t; i++, t/=10)
A[i] = (t += A[i] + B[i]) % 10;
A[0] = i - 1;
}
void numere_mari()
{
// transf(4*n,q);
//n*=4;
//q=2*n-1;
memset(e,0,sizeof(e));
memset(q,0,sizeof(q));
transf(2*(n-1),e);
transf(n-2,q);
mult(q,e);
memset(e,0,sizeof(e));
transf(4*n,e);
add(q,e);
}
int main()
{
citire();
freopen("sarpe.out","w",stdout);
if (n>1)
{
//w=4*n+2*(n-1)*(n-2);
numere_mari();
printare();
}
else
{
w=2;
printf("%ld",w);
}
fclose(stdout);
return 0;
}