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


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

  • 相关阅读:
    Heap(堆)和stack(栈)有的区别是什么。
    i++和++i的深入理解
    JDBC之java数据库的连接与简单的sql语句执行
    java前三本基础知识总结
    数据库的一些基础
    SQL 同时查看2个表
    JMeter 问题
    Linux 常用命令
    java io (一)
    验证密码必须是字母加数字的组合
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4739202.html
Copyright © 2011-2022 走看看