zzulioj--1824--BOOM(模拟水)
1824: BOOM
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 25 Solved: 5
SubmitStatusWeb Board
Description
爆破组有n包炸药,每包炸药有一定的药量,现在需要爆破A,B两个地点,A地点可以放置两包炸药,B地点只能放置一包炸药,爆破的效果为两地点药量的乘积,请给出最好效果。
Input
多实例。每个实例第一行是一个正整数N,代表有N个炸药
接下来一行有N个数字,分别代表每一个炸药的药量值。
Output
每组实例输出爆炸的最好效果值。
Sample Input
31 2 3
Sample Output
9
HINT
Source
太高估这一道题了,刚开始看错了,还以为是背包,没想到这么水,,,,,
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
long long num[10010];
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
memset(num,0,sizeof(num));
for(int i=1;i<=n;i++)
scanf("%lld",&num[i]);
sort(num+1,num+1+n);
long long s1,s2,s3;
s1=(num[n-1]+num[n-2])*num[n];
s2=(num[n]+num[n-1])*num[n-2];
s3=(num[n]+num[n-2])*num[n-1];
printf("%lld\n",max(s1,max(s2,s3)));
}
return 0;
}

浙公网安备 33010602011771号