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

حال که توانستیم با روش میانگین وزن‌دار متحرک، نوسان‌های کوتاه مدت را تعدیل کنیم وقت تحلیل کردن است.

توضیح تصویر

شرکت رایان هم‌افزا می‌خواهد یک سیستم ساده برای تحلیل معاملات پیاده‌سازی کند. شما باید در این سیستم از روی قیمت روزهای قبل و قیمت امروز، درباره‌ی خرید یا فروش و یا دست نگه داشتن، تصمیم‌گیری کنید.

به‌طور دقیق‌تر فرض کنید در روز \(k\)ام هستیم و ارزش سهام در روزهای \(1, 2, \dots, k\) را می‌دانیم. می‌خوهیم از روی ارزش‌ها برای روز \(k\)ام تصمیم بگیریم.

مقدار \(avg\_max\_half\) را برابر میانگین \(\lceil\frac{k}{2}\rceil\) بزرگ‌ترین اعداد بین \(a_1, a_2, \dots, a_k\) است.

مقدار \(avg\_min\_half\) را برابر میانگین \(\lceil\frac{k}{2}\rceil\) کوچک‌ترین اعداد بین \(a_1, a_2, \dots, a_k\) است.

برای تصمیم گیری در روز \(k\)ام اگر

  • مقدار \(a_k\) بزرگ‌تر اکید از \(avg\_max\_half\) بود، این سهام را می‌خریم.
  • مقدار \(a_k\) کوچک‌تر اکید از \(avg\_min\_half\) بود، این سهام را می‌فروشیم.
  • هیچ‌کدام از دو حالت بالا نبود دست نگه می‌داریم.

حال از شما می‌خواهیم برنامه‌ای بنویسید که تصمیم ما در روزهای \(k = 1, 2, \dots, n\) را مشخص کند.

ورودی

در سطر اول ورودی، عدد صحیح \(n\) آمده که تعداد روزها را نشان می‌دهد. \[1 \leq n \leq 100 \, 000\]

در سطر دوم ورودی، \(n\) عدد صحیح که با یک فاصله از هم جدا شده‌اند، آمده که عدد \(i\)ام قیمت سهام در روز \(i\)ام را نشان می‌دهد.

\[1 \leq a_i \leq 10^9\]

خروجی

برای هر روز یک رشته برابر HOLD، SELL یا BUY را چاپ کنید.

ورودی نمونه ۱

4
71 35 89 12

خروجی نمونه ۱

HOLD
HOLD
BUY
SELL

ورودی نمونه ۲

8
70 50 20 40 80 60 10 30

خروجی نمونه ۲

HOLD
HOLD
SELL
HOLD
BUY
HOLD
SELL
HOLD
ارسال پاسخ برای این سؤال
فایلی انتخاب نشده است.