Thứ Sáu, 29 tháng 4, 2022

RUTTIEN2 PASCAL

const fin='ruttien2.inp';fon='ruttien2.out';
var
   m,n,s,d:longint;
   a,x:array[1..1000] of longint;

procedure vet(i:longint);
var j,k:longint;
begin
    for j:=0 to (m - s) div a[i] do //Xet tat ca c c gia tri c¢ the cua xi
    begin
        x[i] := j;
        s:=s + j*a[i];    //ghi nhan gia tri cho xi, c?p nh?t t?ng ti?n s
        if i=n then
        begin
            if s  = m then //cach hop le
            begin
                //for k:=1 to i do write(x[k],' ');
                //writeln;
                inc(d);
            end
        end
        else vet(i+1);       //chuyen qua vet thanh phan tiep theo xi+1
        s:=s - j*a[i];        //loai bo kha nang j hien tai, chuyen qua j moi
     end;
end;

procedure solve;
var i:longint;
begin
    readln(m,n);
    for i:=1 to n do readln(a[i]);
    s:=0;d:=0;
    vet(1);
    write(d);
end;

begin
    assign(input,fin);reset(input);
    assign(output,fon);rewrite(output);
    solve;
    close(input);close(output);
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.