21
10
Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
uses crt;
type int = longint;
var a,v:array[0..1000000] of int;
i,n,d,t:int;
procedure sort(l,r:int;var a,v:array of int);
var i,j,t,x:int;
begin
i:=l;j:=r;x:=a[(l+r) div 2];
repeat
while a[i] < x do inc(i);
while a[j] > x do dec(j);
if i <= j then
begin
t:=a[i];a[i]:=a[j];a[j]:=t;
t:=v[i];v[i]:=v[j];v[j]:=t;
inc(i);dec(j);
end;
until i > j;
if l < j then sort(l,j,a,v);
if i < r then sort(i,r,a,v);
end;
begin
clrscr;
readln(n);
for i:=1 to n do
begin
read(a[i]);
v[i]:=i;
end;
sort(1,n,a,v);
t:=0;d:=1;
for i:=1 to n do
begin
d:=i;
t:=t+a[i];
if t > 500 then
begin
dec(t,a[i]);
dec(d);
break;
end;
end;
sort(1,d,v,a);
writeln(t);
for i:=1 to d do write(a[i],' ');
readln;readln;
end.
Hãy giúp mọi người biết câu trả lời này thế nào?
364
301
uses crt;
var a,w:array[0..10000007] of longint;
procedure sort(l,r:longint);
var i,j,x,tmp:longint;
begin
i := l; j := r; x := a[(i+j) div 2];
repeat
while a[i] < x do inc(i);
while a[j] > x do dec(j);
if (i <= j) then
begin
tmp := a[i];
a[i] := a[j];
a[j] := tmp;
inc(i);dec(j);
end;
until (i > j);
if (l<j) then sort(l,j);
if (i<r) then sort(i,r);
end;
var i,n,t,d:longint;
begin
clrscr;
readln(n);
for i := 1 to n do read(a[i]);
sort(1,n);
for i := 1 to n do
begin
if (t < 500) and (t + a[i] <= 500) then
begin
inc(d);
w[d] := a[i];
t := t + a[i];
end
else if (t > 500) and (t + a[i] > 500) then break;
end;
writeln('Tong khoi luong = ',t);
write('Trong luong cua nguoi duoc chon: ');
for i := 1 to d do
write(w[i],#32);
readln;readln;
end.
Hãy giúp mọi người biết câu trả lời này thế nào?
21
10
nêu ý tưởng với ạ
364
301
code mình chưa đúng ở chỗ 'ko thay đổi thứ tự của từng người'
364
301
bạn hỏi bạn ở trên nhé
21
10
ok
21
10
https://hoidap247.com/cau-hoi/2499728
21
10
giúp mik bài này với
Bảng tin
1210
30631
1157
thì trọng lượng càng nhỏ thì càng cho vào được nhiều
1210
30631
1157
thế nên sắp xếp mảng tăng dần
1210
30631
1157
sau đó chọn từng người vô cho đến khi không cho thêm được nữa
1210
30631
1157
sắp xếp lại vị trí của những người đó
1210
30631
1157
và in ra lại trọng lượng của từng người theo thứ tự
21
242
10
ok
21
242
10
bạn ơi mik có 1 câu hỏi mới bạn xem giúp đc ko
21
242
10
https://hoidap247.com/cau-hoi/2499728