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

最新文章

  1. webrtc的音频处理模块apm( audio processing)下载与编译出libwebrtc_audio_preprocessing.so
  2. 日常使用 Git 的 19 个建议[转]
  3. Spring解析实践
  4. js模拟键盘按键事件
  5. [置顶] 获取激活码,激活myeclipse
  6. C#9 结构体 员工信息 学生成绩
  7. codility上的问题(18) Rho 2012
  8. hibernate 基本和简单易用
  9. Java课设(学生信息管理系统)
  10. Android Studio不更新到最新版使用Kotlin
  11. 这一次,VR离我们真的很近
  12. 一步一步实现HTTP服务器-开篇
  13. interrupt interrupted isInterrupted 方法对比、区别与联系 多线程中篇(八)
  14. 在 ASP.NET Core 中发送邮件遇到的坑_学习笔记
  15. Codeforces 797A - k-Factorization
  16. Spark聚合操作:combineByKey()
  17. 《Linux内核设计与实现》学习总结 Chap18
  18. Java - 利用StringEscapeUtils对字符串进行各种转义与反转义
  19. 全表 or 索引
  20. ELK 6.x 部署

热门文章

  1. iOS 编程思想
  2. BizTalk动手实验(十四)AS2传输非EDI消息
  3. IOS第12天(2,UINavigationController导航控制器)
  4. mysql怎么导入大文件的sql文件
  5. JavaScript 回调函数中的 return false 问题
  6. centos yum 使用笔记
  7. centos安装后iptables基本设置
  8. switch多分支语句
  9. iOS中集成ijkplayer视频直播框架
  10. php基础篇-二维数组排序 array_multisort