Problem Description

halfyarn找你写个简单的题?好哒!给你n个整数,现在要求你选择两个位置的数,例如选择第pos_a个数a,和第pos_b个数b,给定ans=min(a,b)*abs(pos_a-pos_b),输出ans的最大值。

Input

第一行输入一个n代表有n个数,接下来的一行输入n个整数;
2<=n<=1e6;
1<=a,b<=1e6;
注意多组输入;

Output

ans的最大值;

Sample Input

4
1 2 2 2

Sample Output

4

Author

zhengjinke2123

解法:排序,然后从最大值开始遍历到最小,每到达一个数,把他当做最大值和最小值处理,j最大能取多少,最小能取多少,然后再遍历一次

5
2 3 1 5 4

排序后以及下标
1 2 3 4 5
3 1 2 5 4

比如1在3位置,它最大能取5,最小能取1,以此类推

5 5 5 4 4
1 1 2 4 4

#include <bits/stdc++.h>
using namespace std;
#define LL long long
const int Maxn=1e6+;
const LL Mod=1e9+;
int n;
int x[Maxn],y[Maxn];
struct P
{
LL x,y;
} He[Maxn];
bool cmd(P a,P b)
{
return a.x<b.x;
}
int main()
{
int a;
while(~scanf("%d",&n))
{
memset(x,,sizeof(x));
memset(y,,sizeof(y));
for(int i=; i<=n; i++)
{
scanf("%lld",&a);
He[i].x=a;
He[i].y=i;
}
sort(He+,He++n,cmd);
x[n]=He[n].y,y[n]=He[n].y;
LL Max=He[n].y,Min=He[n].y;
for(int i=n-; i>=; i--)
{
if(Max>He[i].y)
{
x[i]=Max;
}
else
{
x[i]=x[i+];
Max=He[i].y;
}
if(Min<He[i].y)
{
y[i]=Min;
// cout<<
}
else
{
Min=He[i].y;
y[i]=Min;
}
}
LL M=-;
for(int i=; i<=n; i++)
{
LL s=He[i].x;
LL pos1=s*(LL)abs(He[i].y-x[i]);
LL pos2=s*(LL)abs(He[i].y-y[i]);
M=max({pos1,pos2,M});
}
printf("%lld\n",M);
}
return ;
}

华东交通大学2016年ACM“双基”程序设计竞赛 1008的更多相关文章

  1. 华东交通大学2016年ACM“双基”程序设计竞赛 1010

    Problem Description LB是个十分喜欢钻研的人,对什么事都要搞明白.有一天他学习到了阶乘,他十分喜欢,所以他在想一个问题.如果给定一个数n,求n!能不能被2016整除.LB算了好久都 ...

  2. 华东交通大学2016年ACM“双基”程序设计竞赛 1007

    Problem Description ACM小学妹在今天的暑假训练结束后,想看球赛放松一下.当他打开电脑时查询到联盟今天直播N场球赛,每场球赛的起止时间(S1,E1),(S2,E2),...,(SN ...

  3. 华东交通大学2016年ACM“双基”程序设计竞赛 1001

    Problem Description 输入一个非负的int型整数,是奇数的话输出"ECJTU",是偶数则输出"ACM". Input 多组数据,每组数据输入一 ...

  4. 华东交通大学2016年ACM“双基”程序设计竞赛 1005

    Problem Description 最近侯ry感觉自己在数学方面的造诣不忍直视:他发现他的学习速率呈一个指数函数递增,疯狂的陷入学习的泥潭,无法自拔:他的队友发现了他的学习速率y=e^(b*lna ...

  5. 华东交通大学2016年ACM“双基”程序设计竞赛 1004

    Problem Description LB是个十分喜欢钻研的人,对什么事都要搞明白.有一天他看到一个公式,((a-b)*c+d*e)/f=k.他想如果给定K的值,一共有多少种不同整数的组合(a,b, ...

  6. 华东交通大学2016年ACM“双基”程序设计竞赛 1009

    Problem Description 华盛顿在寝室洗衣服,遭到了xyf的嫌弃,于是xyf出了道题给华盛顿来做(然而并没有什么关系-v-!)xyf扔给华盛顿n个字符串,这些字符串的长度不超过10000 ...

  7. 华东交通大学2016年ACM“双基”程序设计竞赛 1003

    Problem Description 风雨漂泊异乡路, 浮萍凄清落叶飞. 游子寻根满愁绪,一朝故土热泪归.Hey ecjtuer! 刚刚学习了二叉树的知识,现在来考察一下..给你一个深度为h的满二叉 ...

  8. 华东交通大学2016年ACM“双基”程序设计竞赛 1002

    Problem Description 今天小学弟又训练完了,但是小学弟又不想看球赛,于是小学弟看马赛了.他发现马鞍是一个奇怪的东西.于是小学弟根据马鞍定义了一种马鞍数:在一个二位矩阵中,马鞍数在当前 ...

  9. 华东交通大学2017年ACM“双基”程序设计竞赛 1008

    Problem Description 长度为 n 的序列,把它划分成两段非空的子序列,定义权值为:两段子序列的最大值的差的绝对值.求可能的最大的权值.数据范围:2 <= n <= 10^ ...

随机推荐

  1. [转]linux 查看系统信息命令

    linux 查看系统信息命令是linux初学者必备的基础知识, 这些命令也非常有用, 因为进入linux第一件事就可能是首先查看系统信息, 因此必要的系统的学习一下这些linux系统信息命令还是非常有 ...

  2. 【HDU3721】枚举+最长路

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3721 题意:给你一颗n个节点n-1条边的树,每条边都有一个权值,现在让你任意移动一条边然后把这条边连接 ...

  3. java客户端调用c#的webservice服务

    此处使用到了CXF框架,可以使用以下坐标从maven仓库中获取相关jar包: <dependency> <groupId>org.apache.cxf</groupId& ...

  4. sql 数据库 初级 个人学习总结(一)

    数据库个人总结(初级)1.增删改查 insert into 表名 values ('条件','条件2') delete from 表名 where 条件 update 表名 set=条件值 where ...

  5. Fail to start neutron-server

    问题: [root@localhost ~]# systemctl status neutron-server ● neutron-server.service - OpenStack Neutron ...

  6. array_diff的参数前后循序的区别

    //如果两个参数之间有区别.array_diff会返回第二个参数的差值 $oldData = array(0=>'德国',1=>'deguo'); $newData = array(0=& ...

  7. VBS练习题

    练习题: 1.输入3个数,输出其中最大的那个值. Option Explicit Dim intA,intB,intC intA=CInt(InputBox("请输入a:")) i ...

  8. 【五子棋AI循序渐进】关于VCT,VCF的思考和核心代码

    前面几篇发布了一些有关五子棋的基本算法,其中有一些BUG也有很多值得再次思考的问题,在框架和效果上基本达到了一个简单的AI的水平,当然,我也是初学并没有掌握太多的高级技术.对于这个程序现在还在优化当中 ...

  9. mysql中取日期的一部分

    DATE_FORMAT(date,format) 根据format字符串格式化date值.下列修饰符可以被用在format字符串中: %M 月名字(January……December) %W 星期名字 ...

  10. 《Linux内核分析》第七周 读书笔记

    <深入理解计算机系统>CHAPTER7阅读梳理 [学习时间:3hours] [学习内容:链接需要的代码&数据:链接机制:链接生成的目标文件] 一.链接概述 1.链接 定义:链接是将 ...