- 合并果子
- 2018-02-11 16:46:23 @
运行结果:9WA,1AC
,可是看了好久没发现自己错在哪儿。。
#include <stdio.h>
#include <stdlib.h>
//降序排列
int cmp(const void* a,const void* b){
return *(int *)b-*(int *)a;
}
int main(int argc, char* argv[])
{
int N,i;
long sum=0;
scanf("%d",&N);
int data[N];
//输入b,d,c,a....(设a<b<c<d<...)
for(i=0;i<N;i++){
scanf("%d",&data[i]);
}
//排序,现在data是...,d,c,b,a
qsort(data,N,sizeof(int),cmp);
//相加,sum=(d+c+b+a)+(c+b+a)+(b+a)+a=d+2c+3b+4a
for(i=0;i<N;i++){
sum+=data[i]*(i+1);
}
//题目要求的是(d+c+b+a)+(c+b+a)+(b+a)=d+2c+3b+3a,
//所以减去一个a
sum-=data[N-1];
printf("%ld",sum);
return 0;
}
1 条评论
-
w568w LV 8 @ 2018-02-11 17:44:32
不好意思。。是我智障了,没反应过来
最优
的含义
- 1