zoukankan      html  css  js  c++  java
  • NYOJ 745 蚂蚁问题(两)

    蚂蚁的难题(二)

    时间限制:1000 ms  |  内存限制:65535 KB
    难度:3
    描写叙述

    下雨了,下雨了。蚂蚁搬家了。

    已知有n种食材须要搬走,这些食材从1到n依次排成了一个圈。小蚂蚁对每种食材都有一个喜爱程度值Vi,当然,假设Vi小于0的时候,表示蚂蚁讨厌这样的食材。由于立即就要下雨了。所以蚂蚁仅仅能搬一次,可是可以搬走连续一段的食材。时间紧急,你快帮帮小蚂蚁吧,让它搬走的食材喜爱值和最大。

    输入
    有多组測试数据(以EOF结尾)。


    每组数据有两行。第一行有一个n,表示有n种食材排成了一个圈。

    (2 <= n<= 50000)
    第二行分别有n个数。代表蚂蚁对第n种食材的喜爱值Vi。(-10^9 <= Vi <= 10^9)

    输出
    输出小蚂蚁可以搬走的食材的喜爱值总和的最大。
    例子输入
    3
    3 -1 2
    5
    -8 5 -1 3 -9
    
    例子输出
    5
    7
    AC码:
    #include<stdio.h>
    long long num[50005];
    int main()
    {
    	long long n,i,max,sum,t2,min,t1;
    	while(scanf("%lld",&n)!=EOF)
    	{
    		sum=0;
    		for(i=0;i<n;i++)
    		{
    			scanf("%lld",&num[i]);
    			sum+=num[i];
    		}
    		t1=max=num[0];
    		for(i=1;i<n;i++)
    		{
    			if(max<0)
    				max=0;
    			max+=num[i];
    			if(t1<max)
    				t1=max;
    		}
    		t2=min=num[0];
    		for(i=1;i<n;i++)
    		{
    			if(min>0)
    				min=0;
    			min+=num[i];
    			if(t2>min)
    				t2=min;
    		}
    		if(t1<sum-t2)
    			t1=sum-t2;
    		printf("%lld
    ",t1);
    	}
    	return 0;
    }


    版权声明:本文博客原创文章。博客,未经同意,不得转载。

  • 相关阅读:
    P1535 游荡的奶牛
    rmq
    bsgs算法详解
    P1396 营救
    P1547 Out of Hay
    P1474 货币系统 Money Systems
    P1209 [USACO1.3]修理牛棚 Barn Repair
    P1208 [USACO1.3]混合牛奶 Mixing Milk
    P1108 低价购买
    android屏幕适配的全攻略--支持不同的屏幕尺寸适配平板和手机
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4739202.html
Copyright © 2011-2022 走看看