đàn bò của nông dân BOP có N con bò được đánh số thứ tự từ 1 đến N. Con bò thứ i có sức khỏe là Si, là một số nguyên dương( 1<=Si<=1000), cặp 2 con bò gồm con bò thứ i và con bò thứ j có sức mạnh là tích của chỉ số sức khỏe 2 con bò đó (Si x Sj) . BOP cần chọn trong đàn bò của mình ra K (1<=K<=[ N/2]) cặp bò để tham gia một hội thi đấu bò sao cho tổng sức mạnh của K cặp bò lớn nhất. ( Kí hiệu [X] là phần nguyên của X) Hãy giúp BOP thực hiện công việc trên Dữ liệu vào: từ tệp văn bản KMATCH.INP gồm: - dòng đầu tiên ghi 2 số nguyên dương K và N( 2<=N<=100000) cách nhau 1 dấu cách - Dòng thứ 2 ghi N số nguyên S1,S2,...Sn cách nhau 1 dấu cách Kết quả ghi ra tệp văn bản KMATCH.OUT gồm 1 dòng ghi một số là tổng sức mạnh lớn nhất của K cặp bò tìm được vd KMATCH.INP KMATCH.OUT 2 8 120 3 6 1 4 5 9 10 2 Giair thích ý tưởng giùm với ạ ko cần dùng file hay text pascal nha
2 câu trả lời
var a:array[0..10000007] of int64;
s,i,j,tam:longint;
k,n:int64;
begin
readln(k,n);
s := 0;
for i := 1 to n do read(a[i]);
for i := 1 to n - 1 do
for j := i + 1 to n do
if a[i] < a[j] then
begin tam := a[i];
a[i] := a[j];
a[j] := tam;
end;
for i := 1 to k do
s :=s+(a[i*2]*a[i*2-1]);
writeln(s);
readln;readln;
end.
Pascal nha
var a:array[0..10000007] of int64;
s,i,j,tam:longint;
k,n:int64;
begin
readln(k,n);
s := 0;
for i := 1 to n do read(a[i]);
for i := 1 to n - 1 do
for j := i + 1 to n do
if a[i] < a[j] then
begin tam := a[i];
a[i] := a[j];
a[j] := tam;
end;
for i := 1 to k do
s :=s+(a[i*2]*a[i*2-1]);
writeln(s);
readln;readln;
end.
Câu hỏi trong lớp
Xem thêm