fork download
  1. #include<bits/stdc++.h>
  2. #define f1(i, n) for(ll i=1;i<=n;++i)
  3. #define f0(i, n) for(ll i=0;i<n;++i)
  4. #define ull unsigned long long
  5. #define ll long long
  6. #define rev(a) reverse(a.begin(),a.end())
  7. #define all(x) x.begin(),x.end()
  8. #define so(A, n) sort(A+1, A+n+1)
  9. using namespace std;
  10. const int maxn = 200010;
  11. const int N = 2e5 + 5;
  12. vector<int> am, duong, zero;
  13. ll A[N];
  14. int main()
  15. {
  16. ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
  17. int n;
  18. cin >> n;
  19. f1(i, n) {
  20. cin >> A[i];
  21. if (A[i] < 0) am.push_back(A[i]);
  22. else if (A[i] == 0) zero.push_back(A[i]);
  23. else duong.push_back(A[i]);
  24. }
  25. ll sum = 0;
  26. sort(all(am), greater<int>());
  27. sort(all(duong));
  28. for (int i = 1; i <= 3; ++i) {
  29. ll a;
  30. if (am.size() < 2) {
  31. if (duong.size() >= 3) {
  32. sum += duong[duong.size() - 1] * duong[duong.size() - 2] * duong[duong.size() - 3];
  33. duong.pop_back(); duong.pop_back(); duong.pop_back();
  34. }
  35. else if (zero.size() >= 3) {
  36. sum += 0;
  37. zero.pop_back(); zero.pop_back(); zero.pop_back();
  38. }
  39. continue;
  40. }
  41. if (am.size() >= 2 && duong.size() >= 1) {
  42. a = am[am.size() - 1] * am[am.size() - 2] * duong[duong.size() - 1];
  43. if (duong.size() >= 3) {
  44. if (a >= duong[duong.size() - 1] * duong[duong.size() - 2] * duong[duong.size() - 3]) {
  45. sum += a;
  46. am.pop_back(); am.pop_back();
  47. duong.pop_back();
  48. }
  49. else {
  50. sum += duong[duong.size() - 1] * duong[duong.size() - 2] * duong[duong.size() - 3];
  51. duong.pop_back(); duong.pop_back(); duong.pop_back();
  52. }
  53. }
  54. else {
  55. sum += a;
  56. am.pop_back(); am.pop_back();
  57. duong.pop_back();
  58. }
  59. }
  60. else if (am.size() == 1) {
  61. if (zero.size() >= 2) {
  62. sum += 0;
  63. zero.pop_back(); zero.pop_back();
  64. }
  65. }
  66. }
  67. cout << sum;
  68.  
  69.  
  70. return 0;
  71. }
  72.  
  73.  
  74.  
Success #stdin #stdout 0s 5316KB
stdin
Standard input is empty
stdout
Standard output is empty