Module: الخوارزميات الجشعة


Problem

1 /9


يشتري Formaggio بانزروتي

Theory Click to read/hide

الخوارزمية الجشعة هي خوارزمية تختار في كل خطوة الخيار الأمثل (ضمن الخطوة الحالية) في توقع أن يكون الحل النهائي هو الأمثل بالمعنى الشامل.

مثال صغير:
لنفترض أن لدينا عددًا غير محدود من العملات من فئات مختلفة ونحتاج إلى جمع المبلغ S. لنفكر في حالتين محددتين ، سنحاول حل كل منهما باستخدام خوارزمية جشعة.
وبالتحديد ، سنتصرف على النحو التالي: في كل خطوة سنأخذ عملة معدنية من أعلى فئة (الخيار الأفضل ضمن الخطوة) ، والتي لا تتجاوز المبلغ المتبقي.

أ) اجعل فئات العملات المعدنية هي 1 و 5 و 10 و S = 27.
1) خذ 10 ، S: 27 - & GT. 17
2) خذ 10 ، S: 17 - & GT. 7
3) خذ 5 ، S: 7 - & GT. 2
4) خذ 1 ، S: 2 - & GT. 1
5) خذ 1 ، S: 1 - & GT. 0
نتيجة لذلك ، سجلوا مبلغ خمس عملات معدنية. يمكنك بشكل مستقل (على سبيل المثال ، القوة الغاشمة) التأكد من أنه مقابل 4 عملات أو أقل لن تتمكن من تسجيل 27.

ب) اجعل فئات العملات المعدنية هي 1 و 5 و 7 و S = 24.
1) خذ 7 ، S: 24 - & GT. 17
2) خذ 7 ، S: 17 - & GT. 10
3) خذ 7 ، S: 10 - & GT. 3
4) خذ 1 ، S: 3 - & GT. 2
5) خذ 1 ، S: 2 - & GT. 1
6) خذ 1 ، S: 1 - & GT. 0.
سجلنا ست قطع نقدية ، لكن يمكننا الحصول على S بأربع عملات - اثنتان بقيمة اسمية 7 واثنتان بقيمة اسمية 5.

كما يتضح من المثال ، ليس من الممكن دائمًا حل المشكلات باستخدام خوارزمية جشعة. ولكن إذا أدى ذلك إلى إجابة مثالية شاملة ، فسيكون عادةً أسهل من استخدام البرمجة الديناميكية أو الطرق الأخرى.

Problem

Formaggio مغرم جدًا بـ panzerotti مع حشوات مختلفة ، وليس من المهم جدًا استخدام أي منها. ذات مرة ، عندما كان في حالة جوع ، ذهب Formaggio إلى مخبز ورأى أن البانزيروتي مع الطماطم والسبانخ والفطر معروض للبيع.
يريد Formaggio شراء أكبر عدد ممكن من البانزروتي ، لكن المشكلة تكمن في أن عدد البانزيروتي المعروض للبيع محدود ، تمامًا مثل أموال Formaggio.

ساعد Formaggio في تحديد الحد الأقصى لعدد panzerotti الذي يمكنه شراؤه.

الإدخال:
يحتوي السطر الأول على الأرقام P1 و P2 و P3 & ndash؛ تكلفة البانزروتي مع الطماطم والسبانخ والفطر على التوالي.
يحدد السطر الثاني القيم N1 و N2 و N3 & ndash؛ عدد المطابقة panzerotti للبيع. نبسب ؛
السطر الثالث يحتوي على رقم R & ndash؛ مقدار المال الذي يمتلكه Formaggio. & nbsp؛
جميع الأرقام في الإدخال هي أعداد صحيحة موجبة لا تتجاوز 10000.

الإخراج:
اطبع عددًا صحيحًا واحدًا - الحد الأقصى لعدد panzerotti الذي يمكن لـ Formaggio شراءه.

مثال:
نبسب ؛ <الجسم>
إدخال الإخراج
5 3 8
2 6 4
23
7