比赛 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;
}