LH Quảng cáo: lazijsc@gmail.com

Bài tập  /  Bài đang cần trả lời

Viết chương trình pascal

Viết chương trình pascal
----- Nội dung dịch tự động từ ảnh -----
Nhân dịp Tết, ba bé Bo chuẩn bị N túi lì xì cho bé Bo. Trong túi thứ i có số tiền là ai và
một số nguyên bị (bị≥ 0). Nếu bị> 0 thì bé Bo được phép chọn thêm bị túi lì xì khác. Việc
chọn thêm này là tích lũy. Đầu tiên, bé Bo chọn một túi bất kỳ, sau đó giả sử bé Bo đang có
tổng số tiền là A và số túi được phép chọn thêm là B (B > 0), nếu bé Bo chọn thêm túi thứ 1 thì
tổng số tiền là A + ai và tổng số túi được chọn thêm là B -1 + bị . Cứ như vậy cho đến khi
mmm m
www
mmmmmm
không được phép chọn thêm (B = 0) hoặc đã chọn hết N túi. Ban hãy giúp bé Bo xác định thứ
tư chọn túi sao cho tổng số tiền bé có được là lớn nhất nhé.
- Dữ liệu vào: cho trong tệp LIXI.INP
+ Dòng đầu tiên là số nguyên N(1 + Trong N dòng tiếp theo, dòng thứ i gồm 2 số nguyên ai và bị cách nhau một khoảng trắng (1
≤ai≤ 100, 0≤ bi ≤ 100).
- Dữ liệu ra: ghi ra tệp LIXI.OUT
- LàĐố nguyên xác định số tiền nhiều nhất mà bé Bo có được.
LIXI.INP
LIXI.OUT
5
00
20
20
30
51
8
1 trả lời
Hỏi chi tiết
65
1
0
GUNTER OBERDORF ...
22/02 19:45:51
+5đ tặng
program LIXI;
const MAXN = 100;
var
    f: array[0..MAXN+1, 0..MAXN+1] of longint;
    a, b: array[1..MAXN] of longint;
    n, i, j: longint;
    fi, fo: text;
begin
    assign(fi, 'LIXI.INP');
    reset(fi);
    readln(fi, n);
    for i := 1 to n do
        readln(fi, a[i], b[i]);
    close(fi);

    for i := 0 to n do
        for j := 0 to n do
            f[i][j] := -1;
    f[0][0] := 0;

    for i := 1 to n do
        for j := 0 to n do
            if f[i-1][j] <> -1 then
            begin
                if f[i][j] < f[i-1][j] then
                    f[i][j] := f[i-1][j];
                if (j < n) and (f[i][j+1] < f[i-1][j] + a[i]) then
                    f[i][j+1] := f[i-1][j] + a[i];
                if (j + b[i] <= n) and (f[i][j+b[i]] < f[i-1][j] + a[i]) then
                    f[i][j+b[i]] := f[i-1][j] + a[i];
            end;

    assign(fo, 'LIXI.OUT');
    rewrite(fo);
    writeln(fo, f[n][n]);
    close(fo);
end.

 

Mở khóa để xem toàn bộ nội dung trả lời

(?)
Bạn đã đạt đến giới hạn của mình. Bằng cách Đăng ký tài khoản, bạn có thể xem toàn bộ nội dung trả lời
Cải thiện điểm số của bạn bằng cách đăng ký tài khoản Lazi.
Xem toàn bộ các câu trả lời, chat trực tiếp 1:1 với đội ngũ Gia sư Lazi bằng cách Đăng nhập tài khoản ngay bây giờ
Tôi đã có tài khoản? Đăng nhập

Bạn hỏi - Lazi trả lời

Bạn muốn biết điều gì?

GỬI CÂU HỎI
Học tập không giới hạn cùng học sinh cả nước và AI, sôi động, tích cực, trải nghiệm
Bài tập Tin học Lớp 9 mới nhất

Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi

Vui Buồn Bình thường

Học ngoại ngữ với Flashcard

×
Trợ lý ảo Trợ lý ảo
×
Gia sư Lazi Gia sư