MDIGITS2 - First Number

Tác giả: flashmt

Ngôn ngữ: Pascal

const max=100000;
var a:array[1..5*max] of byte;
    n,i,num,re:longint;
    s:string;
    l:byte;

procedure init;
var i:longint; s:string; l,k:byte;
begin
     fillchar(a,sizeof(a),0);
     num:=0;
     for i:=1 to n do
     begin
          str(i,s);
          l:=length(s);
          for k:=1 to l do
          begin
               num:=num+1;
               a[num]:=ord(s[k])-48;
          end;
     end;
end;

procedure pr;
var i:longint; j:byte; kt:boolean;
begin
        for i:=1 to num-l+1 do
        begin
                for j:=1 to l do
                begin
                     kt:=(a[i+j-1]=ord(s[j])-48);
                     if not kt then break;
                end;
                if kt then break;
        end;
        re:=i;
end;

begin
     read(n);
     init;
     str(n,s);
     l:=length(s);
     pr;
     write(re);
end.

Download