Bài 1: Ghép các cặp số
Hãy ghép 2n số thành n cặp sao cho Tổng của tích các cặp số là lớn nhất, biết rằng mỗi số
chỉ chọn ghép đúng một lần.
Dữ liệu: File văn bản CAPSO.INP
– Dòng đầu ghi số nguyên n
– Dòng thứ 2 ghi 2n số nguyên a1, a2, a3,….an
Kết quả: File văn bản CAPSO.OUT
– Một dòng: là tổng lớn nhất
uses crt;
var fi,fo:text;
n,i:integer;
a:array[1..200] of integer;
Procedure taotep;
begin
assign(Fi,’CAPSO.INP’);
assign(Fo,’CAPSO.OUT’);
{$I-} reset(fi); {$I+}
if ioresult<>0 then
begin
rewrite(fi);
reset(fi);
end;
readln(fi,n);
for i:=1 to 2*n do read(Fi,a[i]);
close(Fi); rewrite(Fo);
end;
procedure sapxep;
var j,tam:integer;
begin
for i:=1 to n*2-1 do
for j:=i+1 to n*2 do
if a[j]<=a[i] then
begin
tam:=a[i];
a[i]:=a[j];
a[j]:=tam;
end;
end;
procedure xuly;
var tong:longint;
begin
sapxep;
tong:=0;
i:=1;
while i<n*2 do
begin
tong:=tong+(a[i]*a[i+1]);
inc(i,2);
end;
write(fo,tong);
end;
BEGIN
taotep; xuly;
close(Fo);
END.
Chúc bạn học tốt.
Cho mình câu trả lời hay nhất nha.