Bạn Nam được thầy giáo giao cho N bài tập về nhà, mỗi bài tập có mức độ khó khác nhau được đánh giá bởi giá trị a[i]. Để làm được bài tập thứ i thì bạn An cần phải có kĩ năng lớn hơn hoặc bằng mức độ khó a[i]. Mỗi khi làm được bài độ khó là a[i] thì kĩ năng giải bài tập của cậu được tăng thêm một bậc lượng là a[i]. Ban đầu kĩ năng làm bài của An là S. Yêu cầu: Hãy cho biết An có thể giải được tối đa bao nhiêu bài tập. Dữ liệu vào: -Dòng 1 chứa N và S (1 ≤ N ≤ 100, S ≤ 1000) -Dòng 2 chứa N số nguyên a[1], a[2], a[3], ..., a[N]. Kết quả ra: -Một số nguyên duy nhất là số lượng bài tập lớn nhất mà An làm được. Viết CT bằng Pascal
1 câu trả lời
uses crt;
var A : array [1 .. 100] of integer;
s, dem, i, n, j, X : longint;
begin
clrscr;
read(n, s);
dem := 0;
for i := 1 to n do read(A[i]);
for j := N downto 2 do
for i := 1 to j - 1 do
if A[i] > A[i + 1] then
begin
X := A[i];
A[i] := A[i + 1];
A[i + 1] := X;
end;
for i := 1 to N do
if s >= a[i] then
begin
dem := dem + 1;
s := s + a[i];
end
else break;
writeln(dem);
readln
end.
Câu hỏi trong lớp
Xem thêm