- محدودیت زمان: ۱ ثانیه
- محدودیت حافظه: ۲۵۶ مگابایت
حال که ارزش سهام در هر روز را بدست آوردهایم میخواهیم با استفاده از یک روش، نوسانهای کوتاه مدت را کم کنیم تا بتوانیم تحلیل درستی از بازار داشته باشیم.
فرض کنید ارزش سهام رایانکد در شهر رایان در $n$ روز مختلف بهترتیب $a_1, a_2, \dots, a_n$ باشد. همچنین عدد صحیح و مثبت $k$ بهعنوان بازهی زمانی مشخص شده است.
برای هر $k$ روز متوالی به ترتیب میانگین ورزندار ارزش سهام در آن $k$ روز را حساب میکنیم. برای وزندادن به ترتیب از اعداد $1$ تا $k$ برای روزها استفاده میکنیم و وزنها را بهترتیب صعودی برای ارزش سهامها از قدیم به جدید در نظر میگیریم.
برای مثال اگر $n = 7$ و $k = 4$ و ارزش سهامها بهصورت زیر باشد: $$[100, 200, 100, 100, 300, 200, 500]$$
میانگین وزندار متحرک برای بازهی زمانی اول بهصورت زیر محاسبه میشود.
$$\frac{1 \times 100 + 2 \times 200 + 3 \times 100 + 4 \times 100}{1 + 2 + 3 + 4} = 120$$
حال از شما میخواهیم برنامهای بنویسید که با دریافت اعداد $n$، $k$ و ارزش سهامها در $n$ روز متوالی، میانگین وزندار متحرک را برای همهی بازههای زمانی به ترتیب محاسبه کند.
ورودی
در سطر اول، دو عدد صحیح مثبت $n$ و $k$ داده میشود که تعداد روزها و بازه زمانی را مشخص میکند. $$1 \leq k \leq n \leq 100 , 000$$
در سطر دوم ورودی، $n$ عدد صحیح که با یک فاصله از هم جداشدهاند آمده و عدد $i$ام نشان دهندهی ارزش سهام در روز $i$ام است.
$$1 \leq a_i \leq 1000 , 000$$
خروجی
در $n - k + 1$ سطر، مقادیر میانگین وزندار متحرک برای هر بازه زمانی چاپ کنید. پاسخ شما زمانی پذیرفته میشود که اختلافش با جواب صحیح، حداکثر $10^{-3}$ باشد.
ورودی نمونه ۱
7 4
100 200 100 100 300 200 500
خروجی نمونه ۱
120.000000000
190.000000000
200.000000000
330.000000000
ورودی نمونه ۲
3 1
1 2 3
خروجی نمونه ۲
1.000000000
2.000000000
3.000000000
ورودی نمونه ۳
4 2
8 3 6 3
خروجی نمونه ۳
4.666666667
5.000000000
4.000000000
ورودی نمونه ۴
3 3
1 2 3
خروجی نمونه ۴
2.333333333
ارسال پاسخ برای این سؤال