UVa 10057 - A mid-summer night's dream.

题目:给出n个数,求一个数A,使得所有数和它的差的绝对值的和最小。

            求出最小的A,和n个数中可以满足A的个数,以及可以满足A的整数个数。

分析:简单题。中位数,同10041.

#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cmath>

using namespace std;

int s[1000005];

int main()
{
	int n;
	while ( ~scanf("%d",&n) ) {
		for ( int i = 0 ; i < n ; ++ i )
			scanf("%d",&s[i]);
		sort( s, s+n );
		int val = s[(n-1)>>1],count = 0;
		for ( int i = 0 ; i < n ; ++ i )
			count += (val==s[i]||s[i]==s[n>>1]);
		printf("%d %d %d\n",val,count,s[n>>1]-val+1);
	}
	return 0;
}

你可能感兴趣的:(UVa 10057 - A mid-summer night's dream.)