且未

博客园 首页 新随笔 联系 订阅 管理

题目

水题但是有必要说明一下,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\n",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\n",Min);
    }
    return 0;
}

posted on 2018-06-19 13:26  阿聊  阅读(82)  评论(0)    收藏  举报