Destroy the Well of Life HDU - 1692

来源:互联网 发布:java短链接 编辑:程序博客网 时间:2024/06/06 01:31

题意:

引爆生命之泉,手动引爆能量为p[i] ,里面的水会流向下一个泉,如果当前水+流的水>容量,生命之泉就被动引爆。

注意:

枚举每一个第一次引爆的泉水位置时候特判一下第一个是否比当前最小的还小 


#include <iostream>#include <stdio.h>#include <cstring>#include <algorithm>#include <queue>#define maxn 200005using namespace std ;int w[maxn];int l[maxn];int p[maxn];int main(){    int T;    scanf("%d",&T);    for(int Case=1;Case<=T;Case++)    {        int n;        scanf("%d",&n);        for(int i=1;i<=n;i++)            scanf("%d%d%d",&w[i],&l[i],&p[i]);        int sum=0,ans=p[n],por=0;        for(int i=1;i<=n;i++)        {            sum=w[i];            por=p[i];            if(por<ans)            for(int j=i+1;j<=n;j++)            {                if(sum+w[j]<=l[j])                {                    por+=p[j];                    if(por>=ans)                        break;                }                sum+=w[j];            }            ans=min(por,ans);        }            printf("Case %d: Need to use %d mana points.\n",Case,ans);    }    return 0;}


0 0
原创粉丝点击