在10个两位正整数中选择若干个数,使它们的和最大,并且这些数的个位数之和不大于10。
输入输出样例:
输入:17 82 57 62 43 96 48 44 74 23
输出:82 62 96
參考答案:贪心法:
program xs;
var
begin
for i:=1 to 10 do
begin
reading(a[i]);
c[i]:=a[i] mod 10;
end;
for i:=1 to 10 do
begin
k:=0;
for j:=1 to 10 do
if a[i]<=a[j] then k:=k+1;
b[i]:=k;
end;
for i:=1 to 10 do
begin
k:=0;
for j:=1 to 10 do
if c[i]<=c[j] then k:=k+1;
d[i]:=k;
end;
for i:=1 to 10 do
max[i]:=b[i]+d[i];
min:=max[1];
for i:=2 to 10 do
if max[i]<min then min:=max[i];
writeln(c[min]);
end.