سلام دوست عزیز😃👋

به مسابقه «مسابقه رایان‌کد» خوش آمدی!

هرگونه ارتباط با سایر شرکت‌کنندگان و یا استفاده از ابزارهای تولید کد، مثل chatGPT و... در مسابقات کوئرا ممنوع است و بعد از شناسایی از لیست شرکت‌کنندگان مسابقه حذف می‌شوید.

لینک‌های مفید برای شرکت در مسابقه:

سوالات و مشکلات خودتان را می‌توانید از طریق قسمت «سوال بپرسید» با ما در میان بگذارید.

سه سوال اول مسابقه به ارزیابی توانایی شما در حل مسائل الگوریتمی (با زبان جاوا) اختصاص دارد، در حالی که دو سوال آخر به پیاده‌سازی با زبان جاوا مربوط می‌شوند.

موفق باشید و بهتون خوش بگذره 😉✌

میانگین وزن‌دار متحرک


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

حال که ارزش سهام در هر روز را بدست آورده‌ایم می‌خواهیم با استفاده از یک روش، نوسان‌های کوتاه مدت را کم کنیم تا بتوانیم تحلیل درستی از بازار داشته باشیم.

توضیح تصویر

فرض کنید ارزش سهام رایان‌کد در شهر رایان در nn روز مختلف به‌ترتیب a1,a2,,ana_1, a_2, \dots, a_n باشد. همچنین عدد صحیح و مثبت kk به‌عنوان بازه‌ی زمانی مشخص شده است.

برای هر kk روز متوالی به ترتیب میانگین ورزن‌دار ارزش سهام در آن kk روز را حساب می‌کنیم. برای وزن‌دادن به ترتیب از اعداد 11 تا kk برای روزها استفاده می‌کنیم و وزن‌ها را به‌ترتیب صعودی برای ارزش سهام‌ها از قدیم به جدید در نظر می‌گیریم.

برای مثال اگر n=7n = 7 و k=4k = 4 و ارزش سهام‌ها به‌صورت زیر باشد: [100,200,100,100,300,200,500][100, 200, 100, 100, 300, 200, 500]

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

1×100+2×200+3×100+4×1001+2+3+4=120\frac{1 \times 100 + 2 \times 200 + 3 \times 100 + 4 \times 100}{1 + 2 + 3 + 4} = 120

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

ورودی🔗

در سطر اول، دو عدد صحیح مثبت nn و kk داده می‌شود که تعداد روزها و بازه زمانی را مشخص می‌کند. 1kn1000001 \leq k \leq n \leq 100 \, 000

در سطر دوم ورودی، nn عدد صحیح که با یک فاصله از هم جداشده‌اند آمده و عدد iiام نشان دهنده‌ی ارزش سهام در روز iiام است.

1ai10000001 \leq a_i \leq 1000 \, 000

خروجی🔗

در nk+1n - k + 1 سطر، مقادیر میانگین وزن‌دار متحرک برای هر بازه زمانی چاپ کنید. پاسخ شما زمانی پذیرفته می‌شود که اختلافش با جواب صحیح، حداکثر 10310^{-3} باشد.

ورودی نمونه ۱🔗

7 4
100 200 100 100 300 200 500
Plain text

خروجی نمونه ۱🔗

120.000000000
190.000000000
200.000000000
330.000000000
Plain text

ورودی نمونه ۲🔗

3 1
1 2 3
Plain text

خروجی نمونه ۲🔗

1.000000000
2.000000000
3.000000000
Plain text

ورودی نمونه ۳🔗

4 2
8 3 6 3
Plain text

خروجی نمونه ۳🔗

4.666666667
5.000000000
4.000000000
Plain text

ورودی نمونه ۴🔗

3 3
1 2 3
Plain text

خروجی نمونه ۴🔗

2.333333333
Plain text
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.