地址:http://acm.swust.edu.cn/problem/0237/
这个题主要是时限的问题,如果用2重循环一定超时,所以要找数字之间的关系。
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<algorithm>
using namespace std;
int main()
{
void result(int a[],int n);
int N;
while(scanf("%d",&N)!=EOF)
{
int *arr;
arr=(int *)malloc(sizeof(arr)*N);
int i;
for(i=0;i<N;i++)
scanf("%d",&arr[i]);
result(arr,N);
free(arr);
}
return 0;
}
void result(int a[],int n)
{
sort(a,a+n);
int sum=0;
int i,j;
for(i=0;i<n;i++)
{
sum=sum+abs(a[i]-a[i+1])*(n-1-i)*(i+1);
}
printf("%d\n",sum);
}