#include <iostream>
#include <string>
#include <vector>
#include <sstream>
#include <cstdio>
#include <algorithm>
#include <queue>
#define BEGIN ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
#define END return EXIT_SUCCESS;
using namespace std;
void dfs(vector<int> integer_list, vector<bool> &used, int used_num, int target_num, int product, priority_queue<int> &products, int start) {
if (used_num == target_num) {
products.push(product);
return;
}
int size = integer_list.size();
int i;
for (i = start; i < size; i++) {
if (!used[i]) {
used[i] = true;
dfs(integer_list, used, used_num + 1, target_num, product * integer_list[i], products, i + 1);
used[i] = false;
}
}
}
inline void solve() {
vector<int> integer_list;
string input;
cin >> input;
istringstream iss(input);
string integer;
while (getline(iss, integer, ',')) {
integer_list.push_back(stoi(integer));
}
int size = integer_list.size();
if (size < 3) {
cout << -1 << endl;
return;
} else if (size == 3) {
cout << (integer_list[0]*integer_list[1]*integer_list[2]) << endl;
return;
}
vector<bool> used(size);
priority_queue<int> products;
dfs(integer_list, used, 0, 3, 1, products, 0);
cout << products.top() << endl;
}
int main(int argc, char**argv) {
BEGIN
solve();
END
}
More than 5 years have passed since last update.
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme
List of users who liked
00