记录编号 22295 评测结果 AAAAAAAAAA
题目名称 最终得分 100
用户昵称 Gravatarbelong.zmx 是否通过 通过
代码语言 Pascal 运行时间 0.154 s
提交时间 2010-11-18 15:33:44 内存使用 0.11 MiB
显示代码纯文本
program eight;
var
  i,j,k,l:longint;
  a,b:int64;
  s:array[1..20]of longint;
  n:longint;
  max:int64;
  m:array[1..20]of boolean;
  w:array[0..20]of longint;
function gbs(const x,y:int64):int64;
var
  a,b,c,d:int64;
begin
  a:=x;
  b:=y;
  d:=a*b;
  c:=a mod b;
  while c<>0 do
  begin
    a:=b;
    b:=c;
    c:=a mod b;
  end;
  exit(d div b);
end;
procedure search(const x,y:longint);
var
  i,j:longint;
  p,q:int64;
  v:boolean;
begin
  if w[0]=y then
  begin
    v:=false;
    q:=8;
    for i:=1 to w[0] do
    begin
      q:=gbs(q,s[w[i]]);
      if q>b then
      begin
        v:=true;
        break;
      end;
    end;
    if (not v) then
    begin
      if (a mod q)=0 then
        p:=a div q
        else p:=(a div q)+1;
      p:=(b div q)-p+1;
      if (y mod 2)=1 then
        max:=max-p
        else max:=max+p;
    end;
  end
  else
  begin
  if (n-x+1)>=(y-w[0]) then
  begin
    for i:=x to n do
      if m[i]=false then
      begin
        inc(w[0]);
        w[w[0]]:=i;
        m[i]:=true;
        search(i+1,y);
        w[w[0]]:=0;
        dec(w[0]);
        m[i]:=false;
      end;
  end;
  end;
end;
procedure go;
var
  i,j,k,l:longint;
begin
  for i:=1 to n do
  begin
    for j:=1 to n do
      m[j]:=false;
    for j:=1 to 20 do
      w[j]:=0;
    w[0]:=0;
    search(1,i);
  end;
end;
begin
  assign(input,'eight.in');
  reset(input);
  assign(output,'eight.out');
  rewrite(output);
  readln(n);
  for i:=1 to n do
    read(s[i]);
  readln;
  readln(a,b);
  if (a mod 8)=0 then max:=a div 8
  else max:=(a div 8)+1;
  max:=(b div 8)-max;
  go;
  writeln(max+1);
  close(input);
  close(output);
end.