Bạn Tú muốn mua tặng các bạn món quà nhân dịp họp lớp,Tú muốn mua hai món quà có tổng giá trị lớn nhất và không vượt quá số tiền trong người. Yêu cầu:

Bạn Tú muốn mua tặng các bạn món quà nhân dịp họp lớp,Tú muốn mua hai món quà có tổng giá trị lớn nhất và không vượt quá số tiền trong người.
Yêu cầu: tìm số quà có tổng giá trị lớn nhất,nếu không mua được thì in ra số 0
Dữ liệu vào: nhập N và X
Dữ liệu ra: 1 số nguyên dương ghi ra tổng giá trị lớn nhất
Vd: 4 16
3 10 4 7
In ra 14

0 bình luận về “Bạn Tú muốn mua tặng các bạn món quà nhân dịp họp lớp,Tú muốn mua hai món quà có tổng giá trị lớn nhất và không vượt quá số tiền trong người. Yêu cầu:”

  1. uses crt;
    var a:array[1..1000] of word;
    n,i,j,x,max:word;
    procedure tinh;
    var t:longint;
    begin
        t:=a[i]+a[j];
        if (t>max) and (t<=x) then
           max:=t;
    end;
    begin
        clrscr;
        readln(n,x);
        for i:=1 to n do read(a[i]);
        readln;
        max:=0;
        for i:=1 to n-1 do
           for j:=i+1 to n do
              tinh;
        writeln(max);
    readln;
    end.

    Bình luận
  2. program pht;
    uses crt;
      var A: array[1..100000000] of longint;
      x, n, max, i, j, t, s, d: longint;
    begin
            clrscr;
            write(‘Nhap so qua: ‘); readln(n);
            write(‘Nhap so tien: ‘); readln(x);
            for i:=1 to n do
            begin
                    write(‘Gia tri qua thu ‘, i, ‘: ‘); readln(A[i]);
            end;
            for i:=1 to n do if A[i]>x then d:=d+1;
            if d=n then write(‘0’) else
            begin
                    max:=A[1];
                    for i:=1 to n do if max>A[i] then max:=A[i];
                    for i:=1 to n do if (max<A[i]) and (A[i]<x) then max:=A[i];
                    for i:=1 to n-1 do
                            for j:=1+i to n do if A[i]<A[j] then
                            begin
                                    t:=A[i];
                                    A[i]:=A[j];
                                    A[j]:=t;
                            end;
                    i:=1;
                    repeat
                    begin
                            s:=0;
                            s:=max+A[i];
                            i:=i+1;
                    end;
                    until s<=x;
                    write(s);
            end;
            readln
    end.

    Bình luận

Viết một bình luận