Cod sursa(job #2897436)

Utilizator pctirziuTirziu Petre pctirziu Data 3 mai 2022 18:57:05
Problema Patrate2 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.37 kb
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;
ifstream cin("patrate2.in");
ofstream cout("patrate2.out");
vector <int> ans;
void inmultire(int x)
{
    vector <int> aux;
    aux.resize(100005);
    int i, trans = 0;
    for(i = ans[0]; i >= 1; i--){
        int k = trans + ans[i] * x;
        aux[++aux[0]] = (trans + ans[i] * x) % 10;
        trans = (trans + ans[i] * x) / 10;
    }
    while(trans){
        aux[++aux[0]] = trans % 10;
        trans /= 10;
    }
    ans[0] = 0;
    for(i = aux[0]; i >= 1; i--)
        ans[++ans[0]] = aux[i];
}
int main()
{
    int n, i, j;
    cin >> n;
    ans.resize(100005);
    ans[0] = ans[1] = 1;
    for(i = 2; i <= n; i++)
        inmultire(i);
    for(i = 1; i <= (n * n) / 10; i++)
        inmultire(1024);
    if((n * n) % 10 == 1)
        inmultire(2);
    else if((n * n) % 10 == 2)
        inmultire(4);
    else if((n * n) % 10 == 3)
        inmultire(8);
    else if((n * n) % 10 == 4)
        inmultire(16);
    else if((n * n) % 10 == 5)
        inmultire(32);
    else if((n * n) % 10 == 6)
        inmultire(64);
    else if((n * n) % 10 == 7)
        inmultire(128);
    else if((n * n) % 10 == 8)
        inmultire(256);
    else if((n * n) % 10 == 9)
        inmultire(512);
    for(i = 1; i <= ans[0]; i++)
        cout << ans[i];
    return 0;
}