水题但是有必要说明一下,min设置成99999,但是sum有可能大于这个(题中说数据小于10000,所以sum最大可能为49995000),所以WA了,下面是AC代码和WA代码,主要是min的取值不同。
AC代码:
#include <stdio.h>
#include<math.h>
#include <iostream>
#include<algorithm>
using namespace std;
int main()
{
int T,a[510],n;
int i,j,tmp,Min;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
for( i=0;i<n;i++)
scanf("%d",&a[i]);
Min = 0;
sort(a,a+n);
for(i=1;i<n;i++)
Min = Min + abs(a[i]-a[0]);
for( i=0;i<n;i++)
{
int tmp = 0;
for( j=0;j<n;j++)
{
tmp += abs(a[j]-a[i]);
}
if(tmp < Min ) Min = tmp;
}
printf("%d
",Min);
}
return 0;
}
WA代码:
#include <stdio.h>
#include<math.h>
int main()
{
int T,a[510],n;
int i,j,tmp,Min;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
for( i=0;i<n;i++)
scanf("%d",&a[i]);
Min = 99999;
for( i=0;i<n;i++)
{
int tmp = 0;
for( j=0;j<n;j++)
{
tmp += abs(a[j]-a[i]);
}
if(tmp < Min ) Min = tmp;
}
printf("%d
",Min);
}
return 0;
}