حل تمرین سوغات مارکوپولو کوئرا با پایتون
در این نوشته به روش حل یکی از سوالات برنامه نویسی وبسایت کوئرا میپردازیم.
حل تمرین سوغات مارکوپولو کوئرا با پایتون
چه برایمان آوردهای مارکو؟ سوالی است که هر کس پس از بازگشت مارکو از سفر از او خواهد پرسید! پس مارکو سعی میکند در هر سفر بیشترین سوغات ممکن را با خود همراه داشته تا شرمنده دوستان و همشهریان خود نشود. در هر سفر مارکو, تعدادی فروشگاه در مسیر او قرار دارد که او به ترتیب آنها را میبیند. هر فروشگاه دو حق انتخاب به مارکو میدهد و او دقیقا باید یکی از آن دو را انتخاب کند. توجه کنید ممکن است هر دو حق انتخابی که به مارکو میدهند یکچیز شود یا به عبارتی توهم آزادی انتخاب!
هر حق انتخاب یکی از این دو است:
- مارکو میتواند یک سوغاتی بخرد که ما آن را حق انتخاب buy_one مینامیم.
- مارکو میتواند تعداد سوغاتیهای خود را دو برابر کند که ما آن را copy_paste مینامیم.
حال به مارکو بگویید از هر سفر چه تعداد سوغات میتوان بیاورد.
ورودی
در سطر اول ورودی تعداد سفرهای مارکو میآید. سپس اطلاعات t سفر در خطوط بعد میآید.
در خط اول سفر i تعداد فروشگاهها Si میآید سپس در Si سطر بعد در هرکدام دو رشته با فاصله میآید که حق انتخابهای مارکو را نشان میدهد. هر حق انتخاب یکی از buy_one یا copy_paste است.
خروجی
به ترتیب برای هر سفر بیشترین سوغاتی ممکن در دست مارکو پس از سفر را در سطری جداگانه خروجی دهید.
مثال
ورودی نمونه 1
3 1 buy_one copy_paste 3 copy_paste copy_paste buy_one copy_paste copy_paste copy_paste 2 buy_one buy_one copy_paste copy_paste
خروجی نمونه 1
1 2 2
کد پایتون سوال تمرین سوغات مارکوپولو
import sys MAX_SIZE = 1005 def read_int(): return int(sys.stdin.readline()) def main(): t = read_int() ans = [0] * MAX_SIZE for i in range(t): x = read_int() for _ in range(x): s1, s2 = input().split() if ans[i] != 0 and (s1 == "copy_paste" or s2 == "copy_paste"): ans[i] *= 2 elif s1 != "copy_paste" or s2 != "copy_paste": ans[i] += 1 for i in range(t): print(ans[i]) if __name__ == "__main__": main()
منبع سوال: کوئرا
اگر نیاز به حل تمرینهای دیگری از کوئرا دارید در بخش نظرات همین نوشته برای ما بنویسید.
ارسال پاسخ