Thứ Sáu, 13 tháng 5, 2022

XAUDTV1 Pascal

var n: longint;
    x,d,t,v: longint; { so doan X D T V }
    dx,dd,dt,dv: longint; { cheu dai moi doan }
    nx,nt,nd,nv: longint; { so doan X D T V can chon }
    sdx,sdt,sdd,sdv:longint;
procedure nhap;
begin
    readln(x,dx);
    readln(d,dd);
    readln(t,dt);
    readln(v,dv);
end;

function Ucln(a,b: longint): longint;
var r: longint;
begin
    while (b <> 0) do
       begin
        r := a mod b;
        a := b;
        b := r;
    end;
     exit(a)
end;
(*------------------------------------
      Bcnn(a,b) = (a * b)/Ucln(a,b)
-------------------------------------*)
function Bcnn(a,b: longint): longint;
begin
    exit(a * (b div Ucln(a,b)));
end;

function Min(a,b: longint): longint;
begin
    if a<b then exit(a)
    else exit(b);
end;

procedure XuLi;
var b, nxt, ndv: longint;
begin
    b := Bcnn(dx,dt);
    nx := b div dx; { so doan xanh trong 1 bo xanh - tim }
    nt := b div dt; { so doan tim trong 1 bo xanh - tim }
    nxt := Min(x div nx, t div nt); { so bo xanh - tim }
    sdx := nxt * nx; { so doan xanh can chon }
    sdt := nxt * nt; { so doan tim can chon }
    b := Bcnn(dd,dv);
    nd := b div dd; { so doan do trong 1 bo do - vang }
    nv := b div dv; { so doan vang trong 1 bo do - vang }
    ndv := Min(d div nd, v div nv);{ so bo do vang }
    sdd := ndv * nd; { so doan do can chon }
    sdv := ndv * nv; { so doan vang can chon }
    writeln(sdx*dx*sdd*dd);{ dien tich }
 // writeln(sdx,' ',sdd,' ',sdt,' ',sdv); { so doan moi loai }

end;

BEGIN
    assign(input, 'xdtv1.inp'); reset(input);
    assign(output, 'xdtv1.out');  rewrite(output);


 nhap; XuLi;
END.

Không có nhận xét nào:

Đăng nhận xét

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.