Pascal

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

Cho Input là mảng có N số nguyên

Với 1<N<=10^6 và mỗi giá trị có trị tuyệt đối không lớn hơn 40.000 (|a[i]| <= 40000)

Output là tích nhỏ nhất tạo bỏi 2 số bất kì trong mảng

Ví dụ
Minp.INP Minp.OUT

3

1 -2 3

-6

 


program tich_be_nhat;
    const inp='minp.inp';out = 'minp.out';
    var i,n:longint;
        min:int64;
        f:text;
        a:array[1..1000000] of longint;
            
    // Sap xep mang 
    procedure Sort(A : array of longint; size : integer);
    var i, j, index : integer;
    begin for i := 2 to size-1 do begin index := A[i];
            j     := i;
            while ((j > 1) and (A[j-1] > index)) do begin
                A[j] := A[j-1];
                j := j - 1;
            end;
            A[j] := index;
        end;
    end;
    
    // doc file 
    procedure DocFile;
    var j:longint;
    begin
        assign(f,inp);
        reset(f);
        readln(f,n);
        
        for i:= 1 to n do begin read(f,j);
            a[i]:=j;            
        end;
        close(f);
    end;
    
    // tim tich nho nhat 
    procedure TimMin;
    begin
        min := a[1]*a[2];
        if min>a[n]*a[n-1] then min:=a[n]*a[n-1];
        if min>a[1]*a[n] then min:=a[1]*a[n];
        assign(f,out);
        rewrite(f);
        write(f,min);
        close(f);    
    end;
    
    // Main 
    begin DocFile();
        Sort(A,N);
        TimMin();
        write('Tich nho nhat la: ',min);
        readln;
    end.