广州大学第九届ACM D --- 最大值
来源:互联网 发布:samba 端口修改 编辑:程序博客网 时间:2024/06/11 16:26
D - 最大值
Problem Description
There are n integers a[0], a[1], ..., a[n-1], your task is to find two integers L, R(0 <= L < R <= n-1) that make the
value (a[L] - a[R])^2 maximized(最大化).
Input
The first line of the input contains an integer T(1<=T<=20) which means the number of test cases.
Each case starts with a line containing a integer n(2 <= n <= 100,000).
The next line contains n space-separated elements ai (0 <= i <= n-1), and the absolute value(绝对值) of ai is not exceed 1,000,000.
Output
For each case, you need to print 3 space-separated number L, R and the value (a[L] - a[R])^2 in a single line. And the problem ensure that the solution is unique.
Sample Input
351 8 -5 1 74721 41 -66 13 999 -50 1111920 12 12 22 18 29 30 -42 -999999
Sample Output
2 4 62412 6 13853296 8 1000058000841
需要注意的就是数据的存储问题,需要考虑溢出的可能,当初我就是没有考虑的全面,计算时有 sum=(min-max)*(min-max)(long long sum; int min,max;) 结果计算后就会有溢出的情况,因为是想计算出(min-max)*(min-max)类型还是int,然后再把值赋给long long类型的sum,所以sum存储的是溢出后的值
有的计算机不能接受long long,可以试着把long long 改成 _int64
/*
* this code is made by 1406100108
* Problem: 1355
* Verdict: Accepted
* Submission Date: 2015-04-14 20:53:42
* Time: 372 MS
* Memory: 1916 KB
*/
#include<iostream>
#include<cstring>
using
namespace
std;
int
main()
{
unsigned
int
T,n;
int
i;
int
minp,maxp;
long
long
sum,max,min; //注意类型是long long
cin>>T;
if
(T>0&&T<=20)
while
(T--)
{
int
*p;
cin>>n;
min=1000000; //由于知道数据的范围,可赋予min,max一个极限的值
max=-1000000;
if
(n<2||n>1000000)
break
;
p=
new
int
[n]; //动态分配长度为n的空间
for
(i=0;i<n;++i)
{
cin>>p[i];
if
(p[i]<-1000000||p[i]>1000000)
break
;
}
for
(i=0;i<n;++i)
{
if
(min>=p[i]) //寻找并记录记录最小值和对应下标
{
min=p[i];
minp=i;
}
if
(max<=p[i]) //寻找并记录记录最大值和对应下标
{
max=p[i];
maxp=i;
}
}
// cout<<minp<<'\t'<<maxp<<endl;
// cout<<min<<'\t'<<max<<endl;
sum=(min-max)*(min-max);
if
(minp<maxp)
{
cout<<minp<<
" "
<<maxp<<
" "
<<sum<<endl;
}
if
(minp>maxp)
{
cout<<maxp<<
" "
<<minp<<
" "
<<sum<<endl;
}
delete
[]p;
}
return
0;
}
- 广州大学第九届ACM D --- 最大值
- 广州大学第九届ACM B--再来一道
- 广州大学第九届ACM C----不要47
- 广州大学第九届ACM A——一道难题
- nyoj 1279 (河南省第九届ACM比赛 D 题)
- 第九届河南省ACM省赛 D 导弹发射
- 第九届河南省ACM题解
- 『NYIST』第九届河南省ACM竞赛队伍选拔赛[正式赛二]--Codeforces -35D. Animals
- “师创杯”山东理工大学第九届ACM程序设计竞赛 热身赛 D.疯狂的bLue【思维+DAG图上的最短路】
- 第九届ACM省赛之感想
- 河南省第九届ACM赛后总结
- 河南省第九届ACM C题
- 河南省第九届ACM程序设计大赛总结
- zzuli 第九届ACM校赛题解
- 机器设备 河南省第九届ACM省赛
- acm-变态最大值
- ACM河南第九届省赛题
- 湖南第九届ACM省赛之菜鸟篇
- AIX备份及恢复<红皮书sg247199>
- GUI界面 22天..
- Cygwin中vim设置
- CSS3-新增属性选择器
- 数据结构_二叉树的遍历
- 广州大学第九届ACM D --- 最大值
- 【cocos2d-x 023】 Error:Cannot run program "bash":????????--?
- 2471 表达式的转换
- hdu1404
- Wins2003系统中Apache性能优化方法
- 如何导出树结构清晰的代码机构目录
- suse11 Linux系统下如何设置文件共享
- Oracle乱码
- 求二进制中1的个数