比赛 20101118 评测结果 WWWWWWWWAA
题目名称 最终得分 20
用户昵称 苏轼 运行时间 0.000 s
代码语言 Pascal 内存使用 0.00 MiB
提交时间 2010-11-18 10:30:11
显示代码纯文本
program eight(input,output);

var
  a,b,n,ans:int64;
  i,j:longint;
  fc:array[0..20]of int64;

function lcs(a,b:int64):int64;
  var
    t,m:int64;
  begin
    m:=a*b;
    if a<b then
    begin
      t:=a;
      a:=b;
      b:=t;
    end;

    t:=a mod b;
    while t<>0 do
    begin
      a:=b;
      b:=t;
      t:=a mod b;
    end;

    exit(m div b);
  end;

function up(const a,b:int64):int64;
  begin
    if a*(a div b)<b then
      exit(a div b+1)
    else
      exit(a div b);
  end;

procedure go(const wh,sum,deep:int64);
  var
    i:longint;
    l:int64;
  begin
    l:=lcs(fc[wh],sum);

    if (l<=b)and(deep<=n) then
    begin
      if odd(deep) then
        ans:=ans-(b div l-up(a,l)+1)
      else
        ans:=ans+(b div l-up(a,l)+1);

      for i:=wh+1 to n do
        go(i,longint(l),deep+1);
    end;
  end;

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

  readln(n);
  for i:=1 to n do
    read(fc[i]);
  readln(a,b);

  ans:=b div 8-up(a,8)+1;

  for i:=1 to n do
    go(i,8,1);

  writeln(ans);

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