من رفتم سربازی اگر محتوای منو دوست داشتید و بدردتون خورد از من حمایت مالی کنید

حل تمرین سوغات مارکوپولو کوئرا با پایتون

حل تمرین سوغات مارکوپولو کوئرا با پایتون
حل تمرین سوغات مارکوپولو کوئرا با پایتون

حل تمرین سوغات مارکوپولو کوئرا با پایتون

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

 

حل تمرین سوغات مارکوپولو کوئرا با پایتون

چه برایمان آورده‌ای مارکو؟ سوالی است که هر کس پس از بازگشت مارکو از سفر از او خواهد پرسید! پس مارکو سعی می‌کند در هر سفر بیشترین سوغات ممکن را با خود همراه داشته تا شرمنده دوستان و همشهریان خود نشود. در هر سفر مارکو, تعدادی فروشگاه در مسیر او قرار دارد که او به ترتیب آن‌ها را می‌بیند. هر فروشگاه دو حق انتخاب به مارکو می‌دهد و او دقیقا باید یکی از آن دو را انتخاب کند. توجه کنید ممکن است هر دو حق انتخابی که به مارکو می‌دهند یک‌چیز شود یا به عبارتی توهم آزادی انتخاب!

هر حق انتخاب یکی از این دو است:

  • مارکو می‌تواند یک سوغاتی بخرد که ما آن را حق انتخاب buy_one می‌نامیم.
  • مارکو می‌تواند تعداد سوغاتی‌های خود را دو برابر کند که ما آن را copy_paste می‌نامیم.

حال به مارکو بگویید از هر سفر چه تعداد سوغات می‌توان بیاورد.

 

ورودی

در سطر اول ورودی  تعداد سفرهای مارکو می‌آید. سپس اطلاعات t سفر در خطوط بعد می‌آید.

ورودی 1 در تمرین سوغات مارکوپولو

در خط اول سفر i تعداد فروشگاه‌ها Si می‌آید سپس در Si سطر بعد در هرکدام دو رشته با فاصله می‌آید که حق انتخاب‌های مارکو را نشان می‌دهد. هر حق انتخاب یکی از buy_one یا copy_paste است.

ورودی 2 در تمرین سوغات مارکوپولو

 

خروجی

به ترتیب برای هر سفر بیش‌ترین سوغاتی ممکن در دست مارکو پس از سفر را در سطری جداگانه خروجی دهید.

 

مثال

ورودی نمونه 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()

 

منبع سوال: کوئرا

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

برای امتیاز به این نوشته کلیک کنید!
[کل: 0 میانگین: 0]