*Series đề lập trình NVT* #1. Chú của hai bạn An và Bình vừa đi xa về có đem theo một bao kẹo to gồm n gói kẹo, gói thứ i có a[i] viên kẹo. Chú không muốn làm hai bạn buồn nên muốn chia sao cho số kẹo chên lệch là ít nhất. Input: + n là số gói kẹo (1<=n<=10^6) + Dãy a là số viên kẹp trong từng gói (1<=a[i]<=100) Output: + Số kẹo chênh lệch ít nhất. // Đề sẽ update trong các lần tiếp theo.
1 câu trả lời
Uses crt;
Var
n,i,j,m,an,binh: LongInt;
a:array[1..1000] of LongInt;
Begin
repeat
clrscr;
write('Nhap so goi keo: '); readln(n);
until(n>=1)and(n<=1000000);
for i:=1 to n do
begin
repeat
write('Nhap so vien keo trong goi thu ',i,': '); readln(a[i]);
if a[i]>100 then writeln('Vui long nhap so vien keo trong khoang 100');
until(a[i]>=1)and(a[i]<=100);
end;
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]<a[j] then begin m:=a[i]; a[i]:=a[j]; a[j]:=m; end;
an:=a[1];
binh:=a[2];
for i:=3 to n do if an>binh then binh:=binh+a[i] else an:=an+a[i];
writeln('So keo chenh lech it nhat: ',abs(an-binh));
End.