codeforces 1013 c Photo of The Sky

http://codeforces.com/problemset/problem/1013/c

给出n*2个数字,组成n个坐标点,让这些坐标点所能确定的面积最小.

方法就排序后,选其中连续的n个数作为x,剩下的按序作为y, 然后用xmax-xmin乘ymax-ymin 取最小解即可.

#include<bits/stdc++.h>
using namespace std;
long long p[211111];
int main()
{
	int n;
	while(cin>>n)
	{
		for(int i=0;i<n+n;i++)
		{
		    scanf("%lld",&p[i]);
		}
		sort(p,p+n+n);
		if(n<=1)
		{
			cout<<"0"<<endl;
			continue;
		}
		long long ans=p[n-1]-p[0];
		ans*=p[n+n-1]-p[n];
		long long l=p[n+n-1]-p[0];
		for(int i=1;i<=n;i++)
		{
			ans=min(ans,l*(p[i+n-1]-p[i]));
		}
		cout<<ans<<endl;
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/threeh20/article/details/81319675
今日推荐