记录编号 110446 评测结果 AAAAAAAAAAAAAA
题目名称 [暑假培训2012] 残酷的数学老师 最终得分 100
用户昵称 Gravatar筽邝 是否通过 通过
代码语言 Pascal 运行时间 0.940 s
提交时间 2014-07-11 16:52:42 内存使用 0.28 MiB
显示代码纯文本
program cojs934;
const
  maxn=15010;
type
  atype=array[1..maxn]of longint;
var
  y,t:atype;
  lent,leny,n,p:longint;

procedure mul(var a,b:atype;var lena,lenb:longint);
var
  i,j:longint;
  c:atype;

begin
  fillchar(c,sizeof(c),0);
  for i:=1 to lena do
  for j:=1 to lenb do
    inc(c[i+j-1],a[i]*b[j]);
  lena:=lena+lenb;
  a:=c;
  for i:=2 to lena do
  begin
    inc(a[i],a[i-1] div  10);
	a[i-1]:=a[i-1] mod 10;
  end;
  if a[lena]=0 then dec(lena);
end;

procedure ksm(p:longint);
begin
  while p<>0 do
  begin
    if p and 1=1 then mul(t,y,lent,leny);
	mul(y,y,leny,leny);
	p:=p shr 1;
  end;
end;

procedure print;
var
  i,count:longint;
begin
  count:=0;
  while (t[lent]=0)and(lent>1) do dec(lent);
  for i:=lent downto 1 do
  begin
    inc(count);
	write(t[i]);
	if count mod 70=0 then writeln;
  end;
end;

begin
assign(input,'cruel1.in');reset(input);
assign(output,'cruel1.out');rewrite(output);

  readln(n,p);
  t[1]:=1; lent:=1;
  while n<>0 do
  begin
    inc(leny);
	y[leny]:=n mod 10;
	n:=n div 10;
  end;
  ksm(p);
  print;

close(input);close(output);
end.