سلام دوست من 😃👋
به آزمون ورودی دورۀ کارآموزی تابستانۀ Software Engineering کُداِستار خوش اومدی!
هدفِ این آزمون، سنجش شیوۀ برنامهنویسیت تو موضوعاتی مثل الگوریتم و شیگراییه.
ترتیب سوالا از آسون به سخته و بعد از مسابقه، نحوۀ برنامهنویسی و امتیازی که کسب کردی بررسی میشه و امیدواریم به مرحلۀ بعدی که مصاحبۀ اسکایپی هست، دعوت بشی!
برای آشنایی با مسابقه و فرستادن جواب، پیشنهاد میکنیم این لینکها رو مطالعه کنی!
در طول مسابقه هر سوالی برات پیش اومد میتونی از قسمت "سوال بپرسید" مطرح کنی.
همچنین برای دسترسی به آخرین اخبار و اطلاعیهها (روال مصاحبه و دورههای بعدی) حتماً یه سر به کانال تلگرام @code_star بزن.
ما به عنوان تیم آکادمی ستاره برات از صمیم قلب آرزوی موفقیت داریم و امیدواریم بتونیم تو کارآموزی ببینیمت 😉❤️
پس از اوجگیری دوباره شیوع ویروس کرونا، مسئولین تصمیم گرفتند تا با استفاده از دادههای در دسترس، راهی برای مقابله با این ویروس پیدا کنند. در این سوال قصد داریم ابزاری طراحی کنیم که با تحلیل دادههای در دسترس که شامل ترددها، آزمایشهای کرونا و اطلاعات خانوار ها میباشد؛ درخواستهای موردنیاز مسئولین را مرتفع کند.
برای سادهسازی مسئله، فرضهای زیر را در نظر میگیریم.
شناسهی شهر
که عددی بین 1
تا c
(که در ورودی داده میشود) مشخص میشوند.شناسهی فرد
که عددی بین 1
تا n
(که در ورودی داده میشود) مشخص میشوند.1
تا 365
تعریف میشود.i
ام positive
شود؛ فرد موردنظر و تمام افرادی که با او در یک خانواده هستند (تمام خانوادههایی که فرد در آنها قرار دارد) از روز i
ام تا روز i+7
که شامل 8
روز میباشد؛ مبتلا به کرونا محسوب میشوند.1
تا n
میباشد. 1
تا c
میباشد. positive
است یا negative
)، شناسهی شهر محل آزمایش و تاریخ آزمایش با یک فاصله از هم بهصورت زیر وارد میشوند.
پیادهسازی هر یک از درخواستها ۴۰ امتیاز دارد.
Q1
:
این درخواست، افراد با بیشترین تخلفها را بهترتیب نزولی خروجی میدهد و بهصورت زیر وارد میشود. که count
تعداد افرادی که باید خروجی بدهد را نشان میدهد.(در صورت برابر بودن تخلف های دو فرد، فرد با شناسهی کوچکتر، بالاتر قرار میگیرد.).
این دستور به شکل دیگری نیز وارد میشود که دارای تاریخ شروع
و تاریخ پایان
است؛ که همانند حالت قبلیاست با این تفاوت که بیشترین تخلفها را از تاریخ شروع
تا تاریخ پایان
نشان میدهد.Q2
:
این درخواست، افراد با بیشترین تعداد آزمایش مثبت خود (نه اعضای خانواده) را بهترتیب نزولی خروجی میدهد و بهصورت زیر وارد میشود. که count
تعداد افرادی که باید خروجی بدهد را نشان میدهد.(در صورت برابر بودن تعداد آزمایش مثبتهای دو فرد، فرد با شناسهی کوچکتر، بالاتر قرار میگیرد.).
این دستور به شکل دیگری نیز وارد میشود که دارای تاریخ شروع
و تاریخ پایان
است؛ که همانند حالت قبلیاست با این تفاوت که بیشترین تعداد آزمایش مثبت را از تاریخ شروع
تا تاریخ پایان
نشان میدهد.Q3
:
این درخواست، شهر هایی که بیشترین آزمایش مثبت را ثبت کردهاند؛ بهترتیب نزولی خروجی می دهد و بهصورت زیر وارد میشود. که count
تعداد شهرهایی که باید خروجی بدهد را نشان میدهد.(در صورت برابر بودن آزمایشهای مثبت دو شهر، شهر با شناسهی کوچکتر، بالاتر قرار میگیرد.).
این دستور به شکل دیگری نیز وارد میشود که دارای تاریخ شروع
و تاریخ پایان
است؛ که همانند حالت قبلیاست با این تفاوت که شهر هایی که بیشترین آزمایش مثبت را از تاریخ شروع
تا تاریخ پایان
داشتهاند؛ نشان میدهد.Q4
:
این درخواست، با دریافت شناسهی شهر، روزهایی که بیشترین تعداد آزمایش مثبت را داشتهاند؛ بهترتیب نزولی خروجی میدهد و بهصورت زیر وارد میشود. که count
تعداد روزهایی که باید خروجی بدهد را نشان میدهد.(در صورت برابر بودن تعداد آزمایشهای مثبت دو روز، روز با عدد کوچکتر، بالاتر قرار میگیرد.)Q5
:
این درخواست، روزهایی از سال با بیشترین آمار مبتلا به کرونا را بهصورت نزولی خروجی میدهد(به این نکته توجه شود که هر فرد، از روز آزمایش مثبت تا ۷ روز بعد، مبتلا به کرونا محسوب میشود) و بهصورت زیر وارد میشود. که count
تعداد روزهایی که باید خروجی بدهد را نشان میدهد.(در صورت برابر بودن تعداد مبتلایان دو روز، روز با عدد کوچکتر، بالاتر قرار میگیرد).برای هر درخواست ابتدا در یک خط نوع درخواست که یکی از مقادیر
Q1
، Q2
، Q3
، Q4
، یا Q5
میباشد نمایشداده میشود و سپس نتیجهی درخواست که متناسب با نوع درخواست به صورت زیر میباشد؛ در خروجی نمایشداده میشود.
Q1
:
خروجی شامل count
خط است که در هر خط ابتدا شناسهی فرد و سپس تعداد تخلفهای فرد نمایش داده میشود. Q2
:
خروجی شامل count
خط است که در هر خط ابتدا شناسهی فرد و سپس تعداد آزمایشهای مثبت شخص نمایش داده میشود. Q3
:
خروجی شامل count
خط است که در هر خط ابتدا شناسهی شهر و سپس تعداد آزمایشهای مثبت نمایش داده میشود. Q4
:
خروجی شامل count
خط است که در هر خط ابتدا روز و سپس تعداد آزمایشهای مثبت نمایش داده میشود. Q5
:
خروجی شامل count
خط است که در هر خط ابتدا روز و سپس تعداد مبتلایان نمایش داده میشود. فرد با شناسهی 1
در روز 28
ام یک آزمایش مثبت داشته و در تاریخ 30
ام ترددی از یک شهر به شهر دیگر انجام دادهاست که یک تخلف محسوب می شود. با توجه به اینکه بقیهی افراد تخلفی نکردهاند اما 3
درخواست شدهاند؛ افراد به ترتیب صعودی شناسه، نمایش داده میشوند.