بکندباز

استیو و موریس هر دو سه حلزون دارند:

  • یک حلزون کند (s)
  • یک حلزون متوسط (m)
  • یک حلزون سریع (f)

اگر موریس در دو مسابقه از سه مسابقه برنده شود، برنامه باید True برگرداند. در غیر این صورت False.

استراتژی موریس:

  1. دور اول: (s, f) → فدا کردن کندترین حلزون خود در برابر سریع‌ترین حلزون استیو.
  2. دور دوم: (m, s) → استفاده از حلزون متوسط خود در برابر کندترین حلزون استیو.
  3. دور سوم: (f, m) → استفاده از سریع‌ترین حلزون خود در برابر حلزون متوسط استیو.

ورودی‌های تابع:

  • لیست 1: [s, m, f] (کند، متوسط، سریع) برای موریس
  • لیست 2: [s, m, f] (کند، متوسط، سریع) برای استیو

مثال

maurice_wins([3, 5, 10], [4, 7, 11]) ➞ True
# مسابقات: (3, 11), (5, 4), (10, 7) 
# موریس در دو مسابقه (5 > 4) و (10 > 7) برنده می‌شود.

نمونه ورودی و خروجی

MauriceWins([3, 5, 10], [4, 7, 11]) ➞ True

MauriceWins([6, 8, 9], [7, 12, 14]) ➞ False

MauriceWins([1, 8, 20], [2, 9, 100]) ➞ True

نکات:

  • موریس فقط زمانی برنده یک مسابقه می‌شود که سرعت حلزونش از حلزون استیو بیشتر باشد.
  • استیو همیشه با این ترتیب بازی می‌کند: [f, s, m]
  • لیست ورودی همیشه به ترتیب صعودی مرتب است.
EXPECT_EQ(MauriceWins({3, 5, 10}, {4, 7, 11}), true);
EXPECT_EQ(MauriceWins({6, 8, 9}, {7, 12, 14}), false);
EXPECT_EQ(MauriceWins({1, 8, 20}, {2, 9, 100}), true);
EXPECT_EQ(MauriceWins({1, 2, 3}, {2, 3, 4}), false);
EXPECT_EQ(MauriceWins({2, 4, 10}, {3, 9, 11}), true);
EXPECT_EQ(MauriceWins({3, 8, 13}, {5, 11, 15}), true);

پاسخ های کاربران به این تمرین

Amin
امتیاز:‌ 23333
تصحیح اتوماتیک 0 0
‎C++‎
7 اسفند 1403

برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید

نظرات

*
*

تمرینات مرتبط