USACO銀牌題目 CF863B Kayaking (排序, 枚舉, 暴力,DFS) 樣例代碼1
#include <bits/stdc++.h>
using namespace std;
int main()
{
? ? int n;
? ? cin>>n;
? ? n=n*2;
? ? int a[n],b[n];
? ? for(int i=0;i<n;i++){
? ? ? ? cin>>a[i];
? ? }
? ? sort(a,a+n);
? ? int ans=1e5;
? ? for(int i=0;i<n;i++){
? ? ? ? for(int j=0;j<n;j++){
? ? ? ? ? ? if(i!=j){
? ? ? ? ? ? ? ? int l=0;
? ? ? ? ? ? ? ? for(int k=0;k<n;k++){
? ? ? ? ? ? ? ? ? ? if(k!=i && k!=j){
? ? ? ? ? ? ? ? ? ? ? ? b[l]=a[k];
? ? ? ? ? ? ? ? ? ? ? ? l++;
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? int sum=0;
? ? ? ? ? ? ? ? //cout<<i<<" "<<j<<" "<<sum<<endl;
? ? ? ? ? ? ? ? for(int k=0;k<n-2;k=k+2){
? ? ? ? ? ? ? ? ? ? sum+=b[k+1]-b[k];
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? if(sum<ans){
? ? ? ? ? ? ? ? ? ? ans=sum;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ? cout<<ans<<endl;
? ? return 0;
}