- محدودیت زمان: ۱ ثانیه
- محدودیت حافظه: ۲۵۶ مگابایت
روی تخته \(n\) عدد صحیح و مثبت \(a_1, a_2, a_3, \dots, a_n \,\) نوشته شده است. در هر مرحله میتوانیم دو عدد از این دنباله را پاک کنیم و سپس ضرب یا جمع آنها را روی تخته بنویسیم.
میخواهیم این کار را طوری انجام دهیم که بعد از \(n - 1\) مرحله، عددی که روی تخته باقی میماند بیشینه باشد.
با توجه به اینکه این عدد ممکن است خیلی بزرگ باشد از شما میخواهیم باقیمانده آن بر \(10^9+7\) را محاسبه کنید.
ورودی
در سطر اول ورودی عدد صحیح و مثبت \(n\) آمده که نشاندهندهی تعداد اعداد نوشته شده روی تخته است. \[1 \leq n \leq 100 \, 000\] در سطر دوم ورودی \(n\) عدد صحیح و مثبت \(a_1, a_2, \dots, a_n \,\) که با یک فاصله از هم جدا شدهاند آمده است که نشاندهندهی اعداد نوشته شده روی تخته است.
\[1 \leq a_i \leq 10^9\]
خروجی
در تنها سطر خروجی باقیمانده بزرگترین عددی که میتوان به آن رسید بر \(10^9+7\) را چاپ کنید.
مثالها
ورودی نمونه ۱
3
1 2 3
خروجی نمونه ۱
9
ورودی نمونه ۲
4
1 1 1 1
خروجی نمونه ۲
4
ارسال پاسخ برای این سؤال