SSL P2403 蜡烛

目录:

题目:

蜡烛 题目

题意:

给出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;
} 

猜你喜欢

转载自blog.csdn.net/qq_35786326/article/details/80028559