The MAX
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2320 Accepted Submission(s): 1022
Problem Description
Giving N integers, V1, V2,,,,Vn, you should find the biggest value of F.
![](https://i-blog.csdnimg.cn/blog_migrate/ddec84118f97e3e2e1599f8c770734bd.gif)
Input
Each test case contains a single integer N (1<=N<=100). The next line contains N integers, meaning the value of V1, V2....Vn.(1<= Vi <=10^8).The input is terminated by a set starting with N = 0. This set should not be processed.
Output
For each test case, output the biggest value of F you can find on a line.
Sample Input
2 1 2 0
Sample Output
4017
题解:先对v排序,题意是各个x的值范围是1<=x<=2009,而且每个x的总和是2009,则每组数据x的最大值是2009-(n-1),乘上最大值vi,加上其他vi *1的和。
ps:因为sum的范围卡了几次~~
代码:
#include<cstdio>
#include<algorithm>
using namespace std;
long long v[100000010];
int main()
{
int n;
long long sum;//超int型范围
while(scanf("%d",&n)&&n)
{
for(int i=0;i<n;i++)
scanf("%lld",&v[i]);
sort(v,v+n);
sum=v[n-1]*(2009-n+1);
for(int i=0;i<n-1;i++)
{
sum+=v[i];
}
printf("%lld\n",sum);
}
return 0;
}