Pagini recente » Istoria paginii preoni-2008/clasament/runda-1/11-12 | Istoria paginii utilizator/nizisti | Monitorul de evaluare | Cod sursa (job #1762843) | Cod sursa (job #953079)
Cod sursa(job #953079)
#include <fstream>
#include <vector>
#include <cmath>
using namespace std;
ifstream f("patrate2.in");
ofstream g("patrate2.out");
const long long bs=1000000000;
string s[]={"","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000"};
int main()
{
int n;
vector<long long> v;
v.push_back(1);
f>>n;
for(int i=0;i<n*n/10;++i){
long long s=0;
for(size_t j=0;j<v.size();++j){
s+=v[j]*1024;
v[j]=s%bs;
s/=bs;
}
while(s){
v.push_back(s%bs);
s/=bs;
}
}
for(int i=0;i<n*n%10;++i){
long long s=0;
for(size_t j=0;j<v.size();++j){
s+=v[j]*2;
v[j]=s%bs;
s/=bs;
}
while(s){
v.push_back(s%bs);
s/=bs;
}
}
for(int i=1;i<=n;++i){
long long s=0;
for(size_t j=0;j<v.size();++j){
s+=v[j]*i;
v[j]=s%bs;
s/=bs;
}
while(s){
v.push_back(s%bs);
s/=bs;
}
}
g<<*v.rbegin();
for(auto it=v.rbegin()+1;it!=v.rend();it++){
g<<s[8-int(log10(*it))]<<*it;
}
return 0;
}