比赛 |
20140711B班小测 |
评测结果 |
EEEEEEEEEEEEEE |
题目名称 |
残酷的数学老师 |
最终得分 |
0 |
用户昵称 |
752199526 |
运行时间 |
1.147 s |
代码语言 |
C++ |
内存使用 |
1.08 MiB |
提交时间 |
2014-07-11 16:17:45 |
显示代码纯文本
#include<iostream>
#include<fstream>
#include<iomanip>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<cctype>
#include<vector>
#include<queue>
#include<deque>
#include<stack>
#include<cassert>
#include<algorithm>
#include<functional>
#include<ctime>
using namespace std;
ifstream fin("cruel1.in");
ofstream fout("cruel1.out");
long long n[20000]={0},p[20000]={0},ans1[30000]={0},ans2[30000]={0},P,N;
int main()
{
fin>>N>>P;
int i=0,x=P,ll=0;
while(N>0){n[i++]=N%10;N/=10;}
while(x>0){p[ll++]=x%10;x/=10;}
while(P!=0)
{
if(P&1==1)
{
for(int k=0;k<15000;k++)
{
for(int j=0;j<15000;j++)
{
ans1[k+j]=n[k]*p[j];
if(ans1[k+j]>10){ans1[k+j+1]=ans1[k+j]/10;ans1[k+j]%=10;}
}
memcpy(n,ans1,sizeof(ans1));
memset(ans1,0,sizeof(ans1));
}
}
for(int k=0;k<15000;k++)
{
for(int j=0;j<15000;j++)
{
ans2[k+j]=p[k]*p[j];
if(ans2[k+j]>10){ans2[k+j+1]=ans2[k+j]/10;ans2[k+j]%=10;}
}
memcpy(p,ans2,sizeof(ans2));
memset(ans2,0,sizeof(ans2));
}
P=P>>1;
}
int h;
for(h=14999;h>=0;h--)if(n[h]!=0)break;
for(;h>=0;h--)
{
fout<<n[h];
if(h%70==0)fout<<endl;
}
return 0;
}