Pascal

Modified: Wednesday, 22-12-2021 07:00 AM

MinNum

Cho số nguyên dương N không quá 12000 chữ số và 1 dãy các "chữ số bị cấm"
Hãy tìm 1 dãy số nguyên dương M nhỏ nhất không chứa các chữ số bị cấm và M>N.

Input:

  • Dòng 1: Dãy số bị cấm. Gồm các số trong phạm vi '0'..'9'
  • Dòng 2: Số N

Output:

  • Số M.

Ví dụ:

Input:       Output:

1 2 4        30
12


var f:text;
    sBan,sNum,sT:string;
    i:integer;
    t:char;
begin
    assign(f,'MinNum.inp');
    reset(f);
    readln(f,sBan);
    readln(f,sNum);
    close(f);
    sT:=sNum;
    i:=1;
    while i<=length(sT) do
    begin
         sT[i]:='0';
         while (pos(sT[i],sBan)<>0) or (sT<=sNum) do
         begin
              if sT[i]='9' then
              begin                 
                  sT[i]:='0';
                  if i=1 then 
                  begin
                      insert('1',sNum,1);
                      sT:=sNum;
                  end
                  else
                  begin
                       dec(i);
                       sT[i]:=Succ(sT[i]);
                  end;
              end
              else
              sT[i]:=Succ(sT[i]);
         end;
         inc(i);
    end;
    write(sT);
    readln;
end.