الرياضيات التطبيقية
الزمن المحدد: 1 ثانية
الذاكرة المحددة: 256 ميجابايت
يعتقد عالم رياضيات مشهور أن كامل علم الرياضيات يمكن اختزاله في مسألة واحدة: \(X\mathbin{?}Y\mathbin{?}Z\). قضى ساعات لا تُحصى يفكر فيها ليلًا ونهارًا، ومع ذلك لم يجد حلًا.

المتغيرات \(X,Y,Z\) أعداد صحيحة معروفة، أما العمليتان بينهما فمفقودتان. يمكن استبدال كل رمز \(?\) إما بعلامة الجمع \(+\) أو الضرب \(\times\).
مهمتك اختيار العمليتين بحيث تكون قيمة العبارة أكبر ما يمكن.
المدخلات
ثلاثة أعداد صحيحة \(X\) و\(Y\) و\(Z\)، حيث \(-10^6 \le X,Y,Z \le 10^6\).
المخرجات
اطبع عددًا صحيحًا واحدًا يمثل أكبر قيمة ممكنة للعبارة.
التقييم
تُقيّم كل حالة اختبار بشكل مستقل، ودرجتك النهائية هي مجموع درجات جميع حالات الاختبار.
مثال
المدخلات
1 2 3
المخرجات
7
ملاحظة
في المثال تتحقق أكبر قيمة هكذا:
\[1 \mathbin{\color{red}{+}} 2 \mathbin{\color{red}{\times}} 3 = 7\]
الحل
لا يوجد إلا أربعة اختيارات للعمليتين. احسب قيمها كلها واطبع أكبرها. استخدم long long لأن حاصل الضرب قد يبلغ \(10^{18}\). التعقيد \(O(1)\).
#include <algorithm>
#include <iostream>
using namespace std;
int main() {
long long x, y, z;
cin >> x >> y >> z;
cout << max( {
x + y + z,
x + y * z,
x * y + z,
x * y * z
}) << '\n';
}