算法训练——最大的算式

//最大的算式
//对输入的N个数逆序排序,前K个数的积乘于剩余N-K个数的和 
#include<stdio.h>
#include<stdlib.h>
#define MAXN 100 
int comp(const void*a,const void*b)//用来做比较的函数。
{
    return *(int*)b - *(int*)a; //降序 
}
int main(){
	int i,N,K,sum = 0,product = 1; 
	int a[MAXN];
	scanf("%d %d",&N,&K);
	for(i=0;i<N;i++)
		scanf("%d",&a[i]);
	qsort(a,N,sizeof(int),comp);
	for(i=0;i<K;i++)
		product *=a[i];
	for(i=K;i<N;i++)
		sum += a[i];
	printf("%d",sum*product);
	return 0; 
}

相关推荐