dualpal.pas

来自「Magio牛的usaco源代码」· PAS 代码 · 共 76 行

PAS
76
字号
{
ID:maigoak1
PROG:dualpal
}

program dualpal;
var
  fin,fout:text;
  a:array[2..10]of string;
  n,count,pals,i:integer;
  s:longint;
function convert(x:longint;b:integer):string;
  begin
    convert:='';
    repeat
      convert:=chr(48+x mod b)+convert;
      x:=x div b;
    until x=0;
  end;
procedure plus(var s:string;b:integer);
  var
    p,i:integer;
  begin
    p:=0;
    for i:=length(s) downto 1 do
      if s[i]<chr(47+b) then begin
        p:=i;
        break;
      end;
    if p=0 then begin
      s:='0'+s;
      p:=1;
    end;
    inc(s[p]);
    for i:=p+1 to length(s) do
      s[i]:='0';
  end;
function pal(s:string):boolean;
  var
    l,i:integer;
  begin
    l:=length(s);
    for i:=1 to l div 2 do
      if s[i]<>s[l+1-i] then begin
        pal:=false;
        exit;
      end;
    pal:=true;
  end;
begin
  assign(fin,'dualpal.in');
  reset(fin);
  readln(fin,n,s);
  close(fin);

  for i:=2 to 10 do
    a[i]:=convert(s,i);

  count:=0;
  assign(fout,'dualpal.out');
  rewrite(fout);
  repeat
    inc(s);
    pals:=0;
    for i:=2 to 10 do begin
      plus(a[i],i);
      if pal(a[i]) then inc(pals);
    end;
    if pals>=2 then begin
      inc(count);
      writeln(fout,s);
    end;
  until count=n;
  close(fout);
end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?