• محدودیت زمان: ۱ ثانیه
  • محدودیت حافظه: ۲۵۶ مگابایت

روی تخته \(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
ارسال پاسخ برای این سؤال
فایلی انتخاب نشده است.