目录:
题目:
题意:
给出n根蜡烛,求按照bessie的要求,最多可以燃烧几晚
分析:
不断的求最有解,还有什么可以说的呢?果断贪心,每次来个排序来维护。当然,不要忘记过了一天晚上长度要-1
代码:
#include<cstdio>
#include<cstring>
#include<iostream>
#include<cmath>
#include<algorithm>
#define LL long long
using namespace std;
inline LL read() {
LL d=0,f=1;char s=getchar();
while(s<'0'||s>'9'){if(s=='-')f=-1;s=getchar();}
while(s>='0'&&s<='9'){d=d*10+s-'0';s=getchar();}
return d*f;
}
int x[51];
bool cmp(int a,int b)
{
return a>b;
}
int main()
{
int n=read();
for(int i=1;i<=n;i++) x[i]=read();
int ans=0;
sort(x+1,x+1+n,cmp);
while(n)
{
ans++;//天数++
if(n<ans) {ans--;break;}//当已经不可以再烧了
for(int i=1;i<=ans;i++)
{
x[i]--;//燃烧ing
if(!x[i]) n--;
}
sort(x+1,x+1+n,cmp);//快排维护
}
printf("%d",ans);
fclose(stdin);
fclose(stdout);
return 0;
}