Pagini recente » Cod sursa (job #2682674) | Profil MrRares18 | Statistici irimia ruxandra maria (rurutza) | Istoria paginii utilizator/belu | Cod sursa (job #3150642)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("patrate2.in");
ofstream fout("patrate2.out");
#define f first
#define s second
#define MOD 1000007
const int DIGITS_MAX = 15828;
const int POWER = 27;
struct HugeNumber {
short digits = 0;
char d[DIGITS_MAX]{};
HugeNumber(int a) {
do
d[digits++] = a % 10;
while(a /= 10);
}
friend HugeNumber operator*(const HugeNumber b, const int a) {
HugeNumber ret(0);
ret.digits = 0;
int i = 0, carry = 0;
while(i < b.digits){
carry += b.d[i++] * a;
ret.d[ret.digits++] = carry % 10;
carry /= 10;
}
while(carry){
ret.d[ret.digits++] = carry % 10;
carry /= 10;
}
return ret;
}
friend void operator*=(HugeNumber &b, const int a) {
b = b * a;
}
void print(ofstream &fout) {
for(int i = digits - 1; i >= 0; --i)
fout.put(d[i] + '0');
fout.put('\n');
}
};
int main()
{
int n;
HugeNumber x(1);
fin>>n;
for(int i=1;i<=n;++i){
x*=2;
x*=i;
}
x*=2;
x*=n;
x*=(n-1);
if(n>1)
x.print(fout);
else
fout<<2;
return 0;
}