Cod sursa(job #2786176)

Utilizator YusyBossFares Yusuf YusyBoss Data 20 octombrie 2021 14:46:37
Problema Patrate2 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <fstream>
#include <vector>
#define BASE2 20

using namespace std;

ifstream cin ("patrate2.in");
ofstream cout ("patrate2.out");

struct strhuge {
  vector < int > vcif;
};

void afis(strhuge A) {
  int i;
  for (i = A.vcif.size() - 1; i >= 0; i--)
    cout << A.vcif[i];
}

strhuge inmultire_huge(strhuge A, int val) {
  int t = 0, ncur, i;

  ncur = A.vcif.size();
  for (i = 0; i < ncur; i++) {
    t = t + val * A.vcif[i];
    A.vcif[i] = t % 10;
    t /= 10;
  }

  while (t > 0) {
    A.vcif.push_back(t % 10);
    t /= 10;
  }

  return A;
}

int main() {
  int n, i;
  strhuge sol;

  cin >> n;

  sol.vcif.push_back(1);
  for (i = 1; i <= n; i++)
    sol = inmultire_huge(sol, i);

  for (i = 1; i <= (n * n) / BASE2; i++)
    sol = inmultire_huge(sol, (1 << BASE2));
  for (i = 1; i <= (n * n) % BASE2; i++)
    sol = inmultire_huge(sol, 2);
  afis(sol);
  return 0;
}