Untitled
unknown
plain_text
2 years ago
1.3 kB
12
Indexable
//banbong bay
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
int n, x, y;
int diem;
int arr[11], vs[11];
void check(int j){
x = -1; y = n;
for(int k = j-1; k >=0; k--){
if(vs[k]==0){
x = k; break;
}
}
for(int k = j+1; k < n; k++){
if(vs[k]==0){
y = k; break;
}
}
}
void backtrack(int i, int score){
if(i == n-2){
int tmp=0;
for(int j = 0; j < n; j++){
if(vs[j]==0){
tmp = arr[j]>tmp?arr[j]:tmp;
}
}
//diem = diem>score+2*tmp? diem: score+2*tmp;
diem = max(diem, score+tmp*2);
return;
}
for(int j = 0; j < n; j++){
if(vs[j]==0){
vs[j] = 1;
check(j);
if(x !=-1 && y < n )
backtrack(i+1, score+arr[x]*arr[y]);
else if(x==-1 && y<n )
backtrack(i+1, score+arr[y]);
else if(x!=-1&& y==n )
backtrack(i+1, score+arr[x]);
else backtrack(i+1, score+arr[j]);
vs[j] = 0;
}
}
}
int main(){
ios::sync_with_stdio(false);
//freopen("ip.txt", "r", stdin);
int t;
cin >> t;
for(int tc =1; tc <= t; tc++){
cin >> n;
for(int i = 0; i < n; i++){
cin >> arr[i];
vs[i] = 0;
}
diem = 0;
backtrack(0,0);
cout << "Case #" << tc << " " <<endl << diem << endl;
}
return 0;
}Editor is loading...