Feel Good

传送门

 

Time Limit: 3000MS Memory Limit: 65536K
Total Submissions: 14435 Accepted: 3996
Case Time Limit: 1000MS Special Judge

Description

Bill is developing a new mathematical theory for human emotions. His recent investigations are dedicated to studying how good or bad days influent people's memories about some period of life. 

A new idea Bill has recently developed assigns a non-negative integer value to each day of human life. 

Bill calls this value the emotional value of the day. The greater the emotional value is, the better the daywas. Bill suggests that the value of some period of human life is proportional to the sum of the emotional values of the days in the given period, multiplied by the smallest emotional value of the day in it. This schema reflects that good on average period can be greatly spoiled by one very bad day. 

Now Bill is planning to investigate his own life and find the period of his life that had the greatest value. Help him to do so.

Input

The first line of the input contains n - the number of days of Bill's life he is planning to investigate(1 <= n <= 100 000). The rest of the file contains n integer numbers a1, a2, ... an ranging from 0 to 106 - the emotional values of the days. Numbers are separated by spaces and/or line breaks.

Output

Print the greatest value of some period of Bill's life in the first line. And on the second line print two numbers l and r such that the period from l-th to r-th day of Bill's life(inclusive) has the greatest possible value. If there are multiple periods with the greatest possible value,then print any one of them.

Sample Input

6
3 1 6 4 5 2

Sample Output

60
3 5

Source

Northeastern Europe 2005
【解析】
题目大意:找一个区间,区间的和乘以区间的最小值最大。
暴力一定超时。
我们可以对于每一个元素a[i],找到一个尽可能大的区间,使a[i]成为这个区间的最小值。
用sum数组存前缀和,最后枚举区间即可。
注意long long
【code】
#include<iostream>
#include<cstdio>
using namespace std;
#define N 100050
long long sum[N],l[N],r[N],a[N];
long long n,L,R;
long long ans,maxx=-1; 
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%lld",&a[i]);l[i]=r[i]=i;sum[i]=sum[i-1]+a[i];}a[0]=a[n+1]=-1;for(int i=1;i<=n;i++){while(a[i]<=a[l[i]-1])l[i]=l[l[i]-1];}for(int i=n;i>=1;i--){while(a[i]<=a[r[i]+1])r[i]=r[r[i]+1];}for(int i=1;i<=n;i++){ans=(sum[r[i]]-sum[l[i]-1])*a[i];if(ans>maxx){maxx=ans;L=l[i];R=r[i];}}printf("%lld\n%lld %lld",maxx,L,R);return 0;
}

 

转载于:https://www.cnblogs.com/zzyh/p/6852056.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/572394.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

转换流/序列化/反序列化

转换流&#xff1a; 使用转换流可以在一定程度上避免乱码&#xff0c;还可以指定输入输出所使用的字符集 InputStreamReader&#xff1a;是从字节流到字符流的桥梁&#xff0c;父类是Reader OutputStreamWriter&#xff1a;是从字符流到字节流的桥梁&#xff0c;父类是Writer 转…

linux进程map,LInux环境运行mapReduce程序

将工程整体打成一个jar包并上传到linux机器上&#xff0c;准备好要处理的数据文件放到hdfs的指定目录中用命令启动jar包中的Jobsubmitter&#xff0c;让它去提交jar包给yarn来运行其中的mapreduce程序 &#xff1a;hadoop jar wc.jar cn.edu360.mr.wordcount.JobSubmitter ...…

python+unittest框架整理(一点点学习前辈们的封装思路,一点点成长。。。)

预期框架整理目标&#xff1a; 1.单个用例维护在单个.py文件中可单个执行&#xff0c;也可批量生成组件批量执行 2.对定位参数&#xff0c;定位方法&#xff0c;业务功能脚本&#xff0c;用例脚本&#xff0c;用例批量执行脚本&#xff0c;常用常量进行分层独立&#xff0c;各自…

linux 不知道root密码怎么办,linux下忘记root密码怎么办

在linux系统操作中&#xff0c;为了系统的安全&#xff0c;会给系统中的root账户设置密码&#xff0c;那么忘记密码是时常发生的事情。如果忘记了root的密码该怎么办呢?下面秋天网 Qiutian.ZqNF.Com小编就给大家介绍下linux下忘记root密码的解决方法。linux是一套免费使用和自…

scrapy爬个小网站

本文使用scrapy对某一个网站静态数据进行了抓取# -*- coding: utf-8 -*- import scrapy from scrapy.http import request import requests import os import sys reload(sys) sys.setdefaultencoding(utf-8)#中文字符不能被识别报错 class spider(scrapy.Spider):namepicSpi…

linux如何标识用户账号和组账号,linux管理用户和组

唯一标识&#xff1a; UID GID (管理员root的UID为0)组的分类&#xff1a; 基本组 附加组(从属组)基本组&#xff1a;Linux自己创建的组&#xff0c;与用户同名&#xff0c;系统自动将用户加入附加组(从属组)&#xff1a;管理员自建创建&#xff0c;管理员将用户加入Linux一个…

Windows 相关链接

c运行库、c标准库、windows API的区别和联系 http://www.cnblogs.com/renyuan/p/5031100.html 转载于:https://www.cnblogs.com/jidongdeatao/p/6916260.html

vs远程编译linux程序,使用Visual Studio 2015远程调试Linux程序

##安装 Visual Studio 2015安装时注意将跨平台移动开发->Visual C移动开发->Viaual C Android 开发的选项勾上##安装PUTTYVisual Studio依赖putty中的plink来连接Linux机器并发送命令##使用首先在Visual Studio中新建一个空项目这里是列表文本接下来将代码导入到这个空项…

都在说反射,反射到底是什么

概念&#xff1a; 什么是反射? 利用反射可以无视修饰符获取类里面所有的属性和方法对于任何对象&#xff0c;都能够调用它的方法和属性&#xff0c;这种动态获取信息以及动态调用对象方法的功能称为Java的反射 反射的应用场景? 常见的有&#xff1a; idea的智能提示、框架等…

jade linux 安装教程,ROS-Jade版在UbuntuKylin15.04上的安装

ROS已经升级到Jade版了&#xff0c;而且貌似可以支持Ubuntu15.04。这里做一个测试&#xff0c;安装是成功的&#xff0c;运行有没有问题&#xff0c;慢慢用了再说。Ubuntu install of ROS JadeWe are building Debian packages for several Ubuntu platforms, listed below. …

LaunchScreen原理

会自动加载LaunchScreen是因为在Target当中,指定了Launch Screen file 它的底层实现其实把LaunchScreen上的东西,生成了一张图片,然后把这张图片设为程序的启动图片.可以进入沙盒当中查看,查看方法,找到应用程序根目录.获取方法: NSLog("%",NSHomeDirectory());打印出…

什么是注解,注解怎么用

概念&#xff1a; 什么是注解? 是JDK1.5推出的新特性 对程序进行标注和解释给类增加额外的信息注解可以保存一些简单的数据 注解和注释的区别 注释: 给程序员看的 注解: 给编译器看的 使用注解进行配置配置的优势 代码更加简洁,方便 注解也可以代替xml 注解的作用: 编写文档&…

QTimer在linux设置实时线程,为什么我的QTimer只能用于以QThread开头的线程消息,如果我的代码中没有QTimer?...

当(并且仅当)退出我的应用程序时,这些(并且仅这些)重复的消息出现在命令提示符上:QObject::startTimer: QTimer can only be used with threads started with QThreadQObject::startTimer: QTimer can only be used with threads started with QThreadQObject::startTimer: QTi…

一分钟看懂动态代理

动态代理&#xff1a; 在不改变目标对象方法的情况下对方法进行增强 组成部分&#xff1a; 被代理对象&#xff1a;真实的对象代理对象&#xff1a;内存中的一个对象 要求&#xff1a; 代理对象必须和被代理对象实现相同的接口 实现 使用Proxy.newProxyInstance() 举栗子&#…

linux 检查mps版本,linux_mps启动流程_存储相关.doc

linux_mps启动流程_存储相关Linux-mips启动流程-存储相关linux内核启动的第一个阶段是从 /arch/mips/kernel/head.s文件开始的。而此处正是内核入口函数kernel_entry(),该函数定义在 /arch/mips/kernel/head.s文件里。kernel_entry()函数是体系结构相关的汇编语言&#xff0c;它…

Mac - 苹果电脑mac系统释放硬盘空间方法汇总

硬盘空间是大家最头痛的一个问题&#xff0c;大家在硬盘空间变小的时候怎么腾空间的呢&#xff1f;下面为大家分享7个mac系统释放空间的高级方法&#xff0c;大家赶紧来收了&#xff01; mac系统释放硬盘空间方法&#xff1a; 方法一&#xff1a;删除Emacs——可以节省出60MB的…

XML语言

XML&#xff1a; XML是可扩展的标记语言 标记语言: 通过标签来描述数据的一门语言(标签有时我们也将其称之为元素) 可扩展&#xff1a;标签的名字是可以自定义的,XML文件是由很多标签组成的,而标签名是可以自定义的 xml学习网站https://www.w3school.com.cn/x.asp 作用&#xf…

linux arm current_thread_info定义,linux 内核 current全局变量

在内核的API里经常能够见到一个指针current&#xff0c;它表示的是当前的进程(如果说是一个全局变量虽然不合理&#xff0c;但更容易理解)&#xff0c;current内核路径为&#xff1a;include\asm-generic\current.hcurrent当前进程具体定义&#xff1a;#ifndef __ASM_GENERIC_C…

xml中的Document和Attribute

1.Document 导入dom4j的步骤 去官网下载 zip 包。http://www.dom4j.org/ 在项目中创建一个文件夹&#xff1a;lib将dom4j-2.1.1.jar文件复制到 lib 文件夹在jar文件上点右键&#xff0c;选择 Add as Library -> 点击OK在类中导包使用 得到Document对象 步骤&#xff1a;…

linux here用法,linux shell的here document用法(cat EOF)

什么是Here Document?Here Document 是在Linux Shell 中的一种特殊的重定向方式&#xff0c;它的基本的形式如下cmd << delimiterHere Document Contentdelimiter其作用是将两个 delimiter 之间的内容(Here Document Content 部分) 传递给cmd 作为输入参数;比如在终端中…