HW2.pdf

‫تمرین سری دوم‬
‫تاریخ تحویل تمرین ‪ 9‬آبان ‪1393‬‬
‫درس مبانی برنامهسازی‬
‫‪CE40153‬‬
‫‪Sharif University of Technology‬‬
‫‪Fall 2013‬‬
‫‪1‬‬
‫توضیحات اولیه‬
‫‪ ‬آخرین مهلت تحویل تمرین‪ ،‬روز ‪ 9‬آبان ماه ‪ 1393‬میباشد‪.‬‬
‫‪ ‬ارسال باتاخیر تمرین تا سه روز امکانپذیر است و به ازای هر روز تاخیر‪ ،‬بیست‬
‫درصد از نمرهی آن را از دست خواهید داد‪ .‬ارسال با تاخیر بیش از سه روز‬
‫امکانپذیر نیست‪.‬‬
‫‪ ‬به فرمت ورودی و خروجی توجه کنید‪ .‬مسئولیت کسرشدن نمره به دلیلِ اشتباه در‬
‫فرمت ورودی و خروجی برعهدهی دانشجوست‪.‬‬
‫‪ ‬هم فکری با سایر دانشجویان قابل قبول است ‪ .‬اما تمامی سواالت باید توسط خود‬
‫دانشجو حل شود‪ .‬در صورت مشاهده ی هرگونه تقلب‪ ،‬برای تقلب کننده و تقلب‬
‫دهنده نمره ‪ 0‬منظور می گردد و ‪ 100‬نمره منفی به شما تعلق می گیرد که باعث از‬
‫بین رفتن نمره یکی دیگر از تمرینات شما نیز خواهد شد‬
‫‪ ‬سواالت خود را پیرامون تکلیف می توانید در سایت ‪ piazza‬مطرح نمایید‪.‬‬
‫‪2‬‬
‫سوال اول‬
‫‪ ‬سه نفر از دخترهای ورودی جدید دانشکده به نام های‪ :‬مانا‪ ،‬مینا و مونا‪ ،‬به‬
‫سختی به درسخواندن مشغولند‪ .‬کلکل آن ها به تازگی باال گرفته‪ ،‬تا جایی‬
‫که برای حلّ مشکلشان به سراغ شما آمده اند و از شما کمک خواسته اند تا‬
‫بین آن ها قضاوت کنید چه کسی از دیگران بهتر است‪ .‬به این منظور هر‬
‫کدام به ترتیب ساعت مطالعهی روز گذشته شان را به شما می گوید‪.‬‬
‫وظیفهی شما این است بر اساس این ساعات مطالعه‪ ،‬این دوستان عزیز را‬
‫رتبهبندی کنید‪.‬‬
‫‪ ‬ورودی‪:‬‬
‫‪ ‬در ورودی ‪ 3‬عدد می آید که به ترتیب نام ساعات درسیِ مانا‪ ،‬سپس مینا و‬
‫در آخر موناست‪ .‬همه ی اعداد کوچکتر یا مساوی ‪ 24‬هستند‪.‬‬
‫‪3‬‬
‫سوال اول‬
‫‪ ‬خروجی‪:‬‬
‫در خروجی نام این افراد را به ترتیب ساعت مطالعه چاپ کنید‪ .‬نام این افراد را با‬
‫این امال بنویسید‪:‬‬
‫‪Mana Mina Mona‬‬
‫‪ ‬نمونه ی ورودی و خروجی‬
‫ورودی نمونه‬
‫خروجی نمونه‬
‫‪18 19 17‬‬
‫‪Mina Mana Mona‬‬
‫‪24 23 22‬‬
‫‪Mana Mina Mona‬‬
‫‪ ‬در مثال باال‪ ،‬مانا ‪ 18‬ساعت‪ ،‬مینا ‪ 19‬ساعت و مونا ‪ 17‬ساعت درس خوانده اند‪ ،‬پس‬
‫مینا از همه بیشتر‪ ،‬سپس مانا در رتبه ی دوّم و در نهایت منا در رتبه ی آخر قرار‬
‫دارد‪.‬‬
‫‪4‬‬
‫سوال دوم‬
‫‪ ‬اساتید دانشکده به تازگی قرار است یک جلسه ی خیلی محرمانه‪ ،‬در رابطه با طرح‬
‫سواالت امتحانی داشته باشند‪ .‬یکی از جاسوسان ما(یکی از تی ای ها) اعالم کرده‬
‫که ‪ n‬ثانیه‪ ،‬پس از تاریخ روز ‪ 4‬شنبه ساعت ‪ 6:18:00‬بعد از ظهر جلسه برگزار‬
‫خواهد شد‪ .‬هدف به دست آوردن تاریخ و زمان دقیق شروع جلسه است‪.‬‬
‫‪ ‬ورودی‪:‬‬
‫در خط اوّل ورودی یک عدد ‪ n‬می آید‪n≤109 .‬‬
‫‪ ‬خروجی‪:‬‬
‫در خط اوّل خروجی به ترتیب ‪ 4‬عدد چاپ کنید‪ .‬اوّل روز برگزاری جلسه‪ .‬جمعه‬
‫را ‪ 6‬فرض کنید‪ .‬شنبه یکشنبه و‪ ...‬نیز به ترتیب ‪ 2 ، 1 ،0‬و ‪ ...‬فرض کنید‪ .‬سه عدد‬
‫بعدی به ترتیب ساعت و دقیقه و ثانیه ی شروع جلسه هستند‪ .‬در ضمن ساعات شبانه‬
‫روز را بین ‪ 0‬تا ‪ 23‬فرض کنید‪ .‬مثال ‪ 10‬شب ساعت ‪ 22‬است‪.‬این سه عدد را با‬
‫استفاده از ‪ :‬از هم جدا کنید‪ .‬دقت کنید که همیشه باید برای هر کدام از دقیقه‪،‬‬
‫ساعت یا ثانیه ها‪ ،‬دو رقم چاپ کنید‪ .‬یعنی فرمت خروجی باید به شکل‬
‫‪ d hh:mm:ss‬باشد‪.‬‬
‫‪5‬‬
‫سوال دوم‬
‫‪ ‬ورودی و خروجی نمونه‬
‫خروجی نمونه‬
‫ورودی نمونه‬
‫‪87480‬‬
‫‪5 18:36:00‬‬
‫‪90079‬‬
‫‪5 19:19:19‬‬
‫‪ ‬در مثال باال‪ 87480 ،‬ثانیه برابر با ‪ 24‬ساعت و ‪ 18‬دقیقه است‪ .‬با گذشتن این‬
‫مقدار از زمان نسبت به روز چهارشنبه ساعت ‪ 6:18‬به روز پنج شنبه ساعت‬
‫‪ 18:36‬خواهیم رسید‪.‬‬
‫‪6‬‬
‫سوال سوم‬
‫‪ ‬تعدادی از اهالی یک سیارهی خیلی خیلی دور‪ ،‬قصد لشکر کشی به دانشکده‬
‫ما را دارند‪ .‬ستون پنجم ما‪ ،‬برایمان اطالعاتی از حرکت دشمن آورده است‪.‬‬
‫روش آنها به این صورت است‪ :‬ابتدا همه به صف می ایستند‪ ،‬سپس بین‬
‫همهی افراد حاضر در صف‪ ،‬یکی از افرادی که کوتاه ترین قد را دارند‬
‫انتخاب می شود (ممکن است چند نفر هم قد باشند) و سپس به همین ترتیب‬
‫یکی از افرادی که بلند ترین قد را دارد‪ ،‬انتخاب می شود‪ .‬سپس همه ی افراد‬
‫حاضر در صف که پشت سر نفر کوتاه قد و جلو تر از نفر بلندقد قرار دارند‪،‬‬
‫به این جنگ فرستاده می شوند‪ .‬برنامه ای بنویسید که با گرفتن لیست طول‬
‫افراد‪ ،‬مشخص کند که حدّاکثر به جنگ چند نفر خواهیم رفت‪.‬‬
‫‪7‬‬
‫سوال سوم‬
‫‪ ‬ورودی‬
‫در خط اوّل ورودی یک عدد صحیح ‪)n≤106 ( n‬شامل تعداد افراد حاضر‬
‫در صف می آید‪ .‬در خط بعدی ‪ n‬عدد صحیح که نشان دهنده ی قد افراد‬
‫است می آید که با فاصله از هم جدا شده اند‪ .‬ترتیب اعداد ورودی دقیقا‬
‫ترتیب افراد در صف است‪ .‬سمت چپ ترین عدد قد جلوترین نفر صف و‬
‫سمت راست ترین عدد نفر انتهای صف است‪ .‬قد همه ی افراد کوچکتر از‬
‫‪ 109‬است‪.‬‬
‫‪ ‬خروجی‬
‫یک عدد صحیح‪ ،‬شامل جواب مساله در تنها خط خروجی چاپ کنید‪.‬‬
‫‪8‬‬
‫سوال سوم‬
‫‪ ‬ورودی و خروجی نمونه‬
‫ورودی نمونه‬
‫خروجی نمونه‬
‫‪5‬‬
‫‪160 200 189 160 200‬‬
‫‪5‬‬
‫‪5‬‬
‫‪200 160 189 200 160‬‬
‫‪3‬‬
‫‪ ‬توضیح ‪ :‬در مورد اول نفر اوّل کوتاه ترین و نفر آخر بلندترین است‪ .‬پس‬
‫همه می توانند بیایند‪ .‬نفر ‪ 4‬ام را بلند قد ترین و نفر دوّم را کوتاه قد فرض‬
‫کنید‪ .‬در این صورت ‪ 3‬نفر می توانند حمله کنند‪.‬‬
‫‪9‬‬
‫سوال چهارم‬
‫‪ ‬آقا و خانم پرپل‪ ،‬همه ی زندگیشان را فروختند و در یک پروژه ی ساختمانی‬
‫بزرگ سرمایه گذاری کردند‪ .‬حاال پس از مدّت ها انتظار باالخره آپارتمان‬
‫‪ n‬طبقه ی آن ها آماده شده است‪ .‬آن ها می خواهند ساختمان را رنگ کنند‪.‬‬
‫مشکل اینجاست که آقای پرپل به رنگ قرمز و خانم پرپل به رنگ آبی‬
‫عالقه دارد‪ .‬برای همین همیشه این زن و شوهر با هم دعوا دارند‪ .‬طیّ آخرین‬
‫بحث میان این زوج‪ ،‬خانم پرپل شرط گذاشت که اگر دو طبقه پشت سر هم‬
‫قرمز ببیند‪ ،‬دیگر آقای پرپل را به خانه راه نخواهد داد‪ .‬آقای پرپل پس از‬
‫شنیدن این جمله‪ ،‬حس خانواده دوستی اش گل کرده و از شما می خواهد‬
‫برای او مشخص کنید که به چند طریق می تواند کل ساختمان را رنگ بزند‬
‫طوری که استحکام خانواده اش زیر سوال نرود(شرایط خانم پرپل قبول‬
‫شود)‪ ،‬با این فرض که او هر طبقه را قرمز یا آبی می کند‪.‬‬
‫‪10‬‬
‫سوال چهارم‬
‫‪ ‬ورودی‬
‫در خط اول ابتدا یک عدد ‪ n‬می آید که تعداد طبقات است‪.‬‬
‫‪ ‬خروجی‬
‫در خروجی تعداد روش ها را چاپ کنید‪ .‬زمانی که تعداد روش ها خیلی بزرگ‬
‫شد‪ ،‬باقی مانده ی آن را بر‪1000000007‬یعنی‬
‫‪109 + 7‬بنویسید‪.‬‬
‫‪ ‬ورودی و خروجی نمونه‬
‫خروجی نمونه‬
‫ورودی نمونه‬
‫‪1‬‬
‫‪2‬‬
‫‪2‬‬
‫‪3‬‬
‫‪ ‬در مورد دوّم فقط حالتی که هر دو خانه قرمز باشند‪ ،‬از بین‪4‬حالت ممکن مورد‬
‫قبول نیست‪.‬‬
‫‪11‬‬