#include using namespace std; int main() { int N; cin >> N; vectorA(N); for(int i = 0; i < N; i++) { cin >> A[i]; } sort(A.rbegin(),A.rend()); if(N == 1) { cout << A[0] << endl; } else if(N == 2) { cout << A[0]*A[1] << endl; } else if(N%2 == 1) { cout << 1 << endl; } else { multisetque; for(int i = 0; i < N; i++) { que.insert(A[i]); } int f = 0; while (que.size() >= 2) { if(!f) { long long x = *que.begin(); que.erase(que.begin()); long long y = *que.begin(); que.erase(que.begin()); que.insert(x*y); } else { que.erase(--que.end()); que.erase(--que.end()); que.insert(1); } f ^= 1; } cout << *que.begin() << endl; } }