题目
奶牛bessie有n根蜡烛,第i根蜡烛的长度是h[i]. bessie最近刚上完小学,只会加减法。它想知道它的n根蜡烛最多能用多少个晚上。由于bessie比较胆小,因此它第一个晚上只点燃一根蜡烛,第二个晚上点燃两根蜡烛,第三个晚上点燃三根蜡烛…第i个晚上它必须要点燃i根蜡烛。每根被点燃的蜡烛,它燃烧一个晚上会使得它的长度减少1。一旦蜡烛的长度变成0,那么该根蜡烛就用完了。如果第i个晚上bessie发现不够i根蜡烛用了,那么bessie最多就只能用i-1个晚上.
Bessie想知道,它该如何选择每个晚上点燃哪些蜡烛,使得它的n根蜡烛能用尽量多的晚上。输出最多能用多少个晚上。
1 <= n <= 50
题解
贪心,长的蜡烛先用
数据这么小,冒泡就好
然后还是那个注意!比赛时程序中途halt一定要在halt前打close(input);close(output);
代码
var
n,i,j,k,t:longint;
a:array[1..50]of longint;
begin
readln(n);
for i:=1 to n do
read(a[i]);
for i:=1 to n do
begin
for j:=1 to n do
for k:=i+1 to n do
if a[j]<a[k] then
begin
t:=a[j];
a[j]:=a[k];
a[k]:=t;
end;
for j:=1 to i do
if a[j]>0 then dec(a[j]) else
begin writeln(i-1);halt;end;
end;
writeln(n);
end.