A. Salem and Sticks
题意:满足|-t|<1的,这个就是一个好数,根据题目给出的木棍,可以将木棍缩短或者拉长,来满足|-t|<1这一条件,所以根据给出的n个数字,从小到大排序,循环每个数字尝试就可以,找到最小的代价(代价就是用原来木棍长度减去缩短或者拉长之后的长度的绝对值,就是代价)。
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<stdlib.h>
#include<string.h>
using namespace std;
const int maxn=1100;
int n,a[maxn],m;
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
sort(a,a+n);
int ans=0x3f3f3f3f;
for(int i=a[0];i<=a[n-1];i++)
{
int t=0;
for(int j=0;j<n;j++)
{
if(abs(i-a[j])>1)
{
t=t+abs(i-a[j])-1;
}
}
if(ans>t)
{
ans=t;
m=i;
}
}
printf("%d %d\n",m,ans);
return 0;
}