hdoj 2803 The MAX【简单规律题】
The MAX
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2062 Accepted Submission(s):
896
Problem Description
Giving N integers, V1, V2,,,,Vn, you should find the
biggest value of F.
![](http://acm.hdu.edu.cn/data/images/C177-1004-1.gif)
![](http://acm.hdu.edu.cn/data/images/C177-1004-1.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
题解:找到这个数组中最大的数乘以上(2009-n+1)这个数组中其余的数全加上来即可
#include<stdio.h> #include<string.h> #include<algorithm> #define MAX 110 #define LL long long using namespace std; bool cmp(int a,int b) { return a>b; } int main() { int n,m,j,i; LL s[MAX]; LL sum; while(scanf("%d",&n),n) { sum=0; for(i=0;i<n;i++) scanf("%lld",&s[i]); sort(s,s+n,cmp); for(i=1;i<n;i++) sum+=s[i]; sum+=(s[0]*(2009-n+1)); printf("%lld\n",sum); } return 0; }