الدلوان

الدلوان

متوسط

التعليمات

بمعرفة دلوين مختلفين في الحجم وأي الدلوين يجب ملؤه أولًا، حدّد عدد الإجراءات اللازمة لقياس عدد محدد من اللترات بنقل السائل بين الدلوين بذكاء.

هناك بعض القواعد التي يجب أن يتبعها حلّك:

  • يمكنك تنفيذ إجراء واحد فقط في كل مرة.
  • هناك 3 إجراءات ممكنة فقط:
    1. سكب محتوى دلو في الدلو الآخر حتى: a) الدلو الأول فارغ b) الدلو الثاني ممتلئ
    2. تفريغ دلو دون إحداث أي تغيير في الدلو الآخر.
    3. ملء دلو دون إحداث أي تغيير في الدلو الآخر.
  • بعد أي إجراء، لا يجوز أن تصل إلى حالة يكون فيها الدلو الذي بدأت به فارغًا والدلو الآخر ممتلئًا.

سيستقبل برنامجك المدخلات التالية:

  • حجم الدلو الأول
  • حجم الدلو الثاني
  • عدد اللترات المطلوب الوصول إليه
  • أي دلو يُملأ أولًا، الدلو الأول أم الدلو الثاني

وعلى برنامجك أن يحدد:

  • العدد الإجمالي للإجراءات اللازمة للوصول إلى عدد اللترات المطلوب، بما في ذلك الملء الأول للدلو الذي تبدأ به
  • أي دلو سينتهي به الأمر حاملًا عدد اللترات المطلوب، الدلو الأول أم الدلو الثاني
  • كم لترًا يتبقى في الدلو الآخر

ملاحظة: أي تغيير يُجرى على أحد الدلوين أو كليهما يُحتسب إجراءً واحدًا (1).

مثال: يستوعب الدلو الأول حتى 7 لترات، ويستوعب الدلو الثاني حتى 11 لترًا. لنفترض أن الدلو الأول يحتوي في خطوة معينة على 7 لترات وأن الدلو الثاني يحتوي على 8 لترات (7,8). إذا فرّغت الدلو الأول دون إجراء أي تغيير على الدلو الثاني، فتبقى لديك 0 لتر و8 لترات على الترتيب (0,8)، فهذا يُحتسب إجراءً واحدًا. أما إذا كنت قد سكبت من الدلو الأول في الدلو الثاني حتى امتلأ الدلو الثاني، فتصبح النتيجة 4 لترات في الدلو الأول و11 لترًا في الدلو الثاني (4,11)، فهذا أيضًا يُحتسب إجراءً واحدًا فقط.

مثال آخر: يستوعب الدلو الأول 3 لترات، ويستوعب الدلو الثاني حتى 5 لترات. ويُقال لك إن عليك البدء بالدلو الأول. لذا فإن إجراءك الأول هو ملء الدلو الأول. ثم تختار تفريغ الدلو الأول في إجراءك الثاني. أما في إجراءك الثالث، فلا يجوز لك ملء الدلو الثاني، لأن هذا يخالف القاعدة الثالثة: لا يجوز أن تنتهي بعد أي إجراء إلى حالة يكون فيها الدلو الذي بدأت به فارغًا والدلو الآخر ممتلئًا.

كُتبت بـ<3 في Fullstack Academy بقلم Lindsay Levine.

تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
D Exercism

مستعد لبدء الدلوان؟

سجّل في Exercism لتتعلّم وتتقن D عبر 92 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.