سلام دوست من 😃👋

به آزمون ورودی دورۀ کارآموزی تابستانۀ Software Engineering کُداِستار خوش اومدی!

هدفِ این آزمون، سنجش شیوۀ برنامه‌نویسی‌ت تو موضوعاتی مثل الگوریتم و شی‌گرایی‌‍ه.


ترتیب سوالا از آسون به سخته و بعد از مسابقه، نحوۀ برنامه‌نویسی و امتیازی که کسب کردی بررسی میشه و امیدواریم به مرحلۀ بعدی که مصاحبۀ اسکایپی هست، دعوت بشی!


برای آشنایی با مسابقه و فرستادن جواب، پیشنهاد می‌کنیم این لینک‌ها رو مطالعه کنی!


در طول مسابقه هر سوالی برات پیش اومد می‌تونی از قسمت "سوال بپرسید" مطرح کنی.

همچنین برای دسترسی به آخرین اخبار و اطلاعیه‌ها (روال مصاحبه و دوره‌های بعدی) حتماً یه سر به کانال تلگرام @code_star بزن.

ما به عنوان تیم آکادمی ستاره برات از صمیم قلب آرزوی موفقیت داریم و امیدواریم بتونیم تو کارآموزی ببینیمت 😉❤️

الگوریتمی - بررسی آماری


  • محدودیت زمان: ۰.۵ ثانیه
  • محدودیت حافظه: ۲۵۶ مگابایت
  • سوال الگوریتمی

یکی از آشنایان شما به تازگی مسئول بررسی آمار مبتلایان کرونا در یکی از مناطق کشور شده است. او بسیار باحوصله و بادقت است و به تازگی گزارشی از مبتلایان شهرهای مختلف به او رسیده و می‌خواهد وضعیت را بررسی کند. او برای این کار از مفاهیم زیر استفاده می‌کند:

  • اعداد خوب: تمام اعداد، به جز کم‌ترین و بیش‌ترین آن‌ها

  • میانگین خوب: یک عدد صحیح که در واقع همان میانگینِ اعدادِ خوب است

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

درجه خوشحالی ناراحتی
۱ ‍‍:) :(
۲ ‍‍:)) :((
۳ ‍‍:))) :(((

و به همین ترتیب ادامه پیدا می‌کند.

حال او از شما می‌خواهد خوشحالی و ناراحتی‌اش را نشان دهید.

راهنمایی🔗

  • در صورتی که کم‌ترین یا بیش‌ترین عدد چند بار تکرار شده باشد، تمام آن‌ها را نادیده بگیرید.
  • در صورتی که مقدار میانگین صحیح نبود، باید کوچک‌ترین عدد صحیح بزرگ‌تر از آن (سقف عدد اعشاری) را محاسبه کنید.
  • اگر هیچ عدد خوبی بین آمارها وجود نداشت مقدار ‍‍100 را به عنوانِ میانگین خوب در نظر بگیرید.
  • خوشحالی و ناراحتی مستقل از ترتیب اعداد است و فقط به تعداد اعداد کم‌تر یا بیش‌تر از میانگین خوب بستگی دارد.
  • در اولین مرحله درجه‌ی خوشحالی‌اش ۱ است. (:)) با هر بار دیدن عدد کوچکتر از میانگین خوب خوشحال می‌شود و یک پرانتز‌ نسبت به حالت قبلی اضافه می‌شود. درنهایت تعداد کل خوشحالی‌ها برابر تعداد اعداد کم‌تر از میانگین خوب است. همچنین برای درجه ناراحتی هم به همین صورت است.

ورودی‌🔗

ورودی شامل تعدادی خط است که در هر خط آمار یک منطقۀ خاص aia_i آمده است و پایان داده‌ها با --- نشان‌داده می‌شود. 0ai1040 \le a_i \le 10^4 3i1053\le i \le 10^5

خروجی🔗

خروجی فقط شامل دو خط است و به ترتیب خوشحالی و ناراحتی او را نشان می‌دهد.

برای درک بهتر مسئله به مثال‌ها توجه کنید.

مثال🔗

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

0
60
100
---
Plain text

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

:) 
:(
Plain text
توضیح نمونه ۱

ابتدا کم‌ترین (0) و بیش‌ترین (‍‍100) آمار حذف می‌شوند. پس میانگین خوب برابر 60 است. برای آمار 100 ناراحت و برای آمار 0 خوشحال می‌شود.

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

0
10
20
30
40
50
60
70
80
90
100
---
Plain text

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

:) :)) :))) :)))) :)))))
:( :(( :((( :(((( :(((((
Plain text
توضیح نمونه ۲

در مرحلۀ اول کم‌ترین (0) و بیش‌ترین (100) عدد حذف می‌شود و میانگین اعداد باقی‌مانده محاسبه می‌شود. در نهایت میانگین خوب 50 است. پس به تعداد اعداد کم‌تر از میانگین خوب خوشحال می‌شود و درجۀ خوشحالی‌اش در هر مرحله مانند جدول گفته شده افزایش می‌یابد. هم‌چنین به تعداد اعدادی که بیش‌تر از میانگین هستند ناراحت می‌شود و در هر مرحله درجۀ ناراحتی‌اش بیش‌تر می‌شود.

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

10
90
90
95
100
100
90
90
---
Plain text

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

:) :)) :))) :)))) :)))))
:( :(( :(((
Plain text
توضیح نمونه ۳

در مرحلۀ اول کم‌ترین (10) و بیش‌ترین (100) اعداد حذف می‌شوند و میانگین اعداد باقی‌مانده محاسبه می‌شود. در نهایت میانگین خوب 91 خواهد بود. پس به تعداد اعداد کم‌تر از میانگین خوب خوشحال می‌شود(۵ بار) و درجۀ خوشحالی‌اش در هر مرحله مانند جدول گفته شده افزایش می‌یابد. هم‌چنین به تعداد اعدادی که بیش‌تر از میانگین هستند (۳ بار) ناراحت می‌شود و در هر مرحله درجۀ ناراحتی‌اش بیش‌تر می‌شود.

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