codeforces 863B Kayaking

来源:互联网 发布:程序员女朋友礼物代码 编辑:程序博客网 时间:2024/06/08 06:29

http://codeforces.com/problemset/problem/863/B



暴力枚举2个数,然后将剩下的数排序,两两组合,将所有的组合的差相加取最小


#include<iostream>#include<cstring>#include<algorithm>#include<cstdio>using namespace std;int main(){int a;while(cin>>a){int i,j;int b[1111];   for(i=0;i<2*a;i++)   cin>>b[i];   int c[1111];   for(i=0;i<a*2;i++)   c[i]=b[i];   int a1=0;   int sum=0;   int ans=99999999;   int s,ss;   for(i=0;i<=a*2-1;i++)   {   for(j=2*a-1;j>i;j--)   {   if(i==j)continue;   for(int ts=0;ts<=2*a-1;ts++)   b[ts]=c[ts];   s=b[i];   ss=b[j];   b[i]=1111111;   b[j]=1111111;   sort(b,b+a*2);   int ans1=0;   for(int k=1;k<=2*a-1-2;k+=2)   ans1+=b[k]-b[k-1];   ans=min(ans1,ans);   //cout<<ans<<endl;}   }   cout<<ans<<endl;}return 0;}