正题
大意
有n个蜡烛,第i个晚上要烧i根,没烧一个晚上蜡烛要消耗一个高度,求能烧多少个晚上。
解题思路
就是先烧高的,让剩下的蜡烛尽量多。
代码
#include<cstdio>
#include<algorithm>
using namespace std;
int n,h[101],k;
int main()
{
freopen("lazhu.in","r",stdin);
freopen("lazhu.out","w",stdout);
scanf("%d",&n);
for (int i=1;i<=n;i++)
scanf("%d",&h[i]);
for (int i=1;i<=n;i++)
{
sort(h+1,h+1+n);
for (int j=n;j>=n-i+1;j--)
if (h[j]==0) {k=i-1;break;}//烧蜡烛
else {h[j]-=1;}
if (k) break;
}
if (!k) printf("%d",n);
else printf("%d",k);
}