HDU 2803--The MAX【简单数学】

来源:互联网 发布:超级助手软件 编辑:程序博客网 时间:2024/04/29 20:28

The MAX

Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2042    Accepted Submission(s): 883


Problem Description
Giving N integers, V1, V2,,,,Vn, you should find the biggest value of F.
 

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
21 20
 

Sample Output
4017
 

解析:数学水题,稍微推一下就出来了,要让你求最大值,我们只要从小到大排好V的值,让最后一个V值乘以尽可能最大的Y,剩下的V都乘以1就能使得结果最大。

#include <iostream>#include <algorithm>#include <queue>#include <algorithm>#include <cstring>using namespace std;int main(){    __int64 a[110], n;    __int64 sum;    while(scanf("%I64d", &n), n){for(int i = 1; i <= n; ++i)scanf("%I64d", &a[i]);sort(a + 1, a + n + 1);sum = 0;for(int i = 1; i <= n - 1; ++i)sum += a[i];printf("%I64d\n",sum + a[n] * (2010 - n));    }return 0;}



1 0
原创粉丝点击