بوردرلاندز 3
Problem
اليوم Moxxi في مزاج جيد ، لذا فهي تريد تنويع الموسيقى في الحانة الخاصة بها.
يخزن الصندوق الموسيقي عددًا من الأغاني ، وتتميز كل منها بمعاملتين: t
i و g
i ، حيث t_i & mdash؛ مدة الأغنية بالدقائق (1 & le؛ t
i & le؛ 15)، g
i & mdash؛ نوعه (1 & le؛ g
i & le؛ 3).
يريد Moxxi إنشاء قائمة تشغيل بحيث تكون مدتها الإجمالية بالضبط T دقيقة. لا يقاطع الموسيقي أبدًا الأغاني بل يقوم دائمًا بتشغيلها من البداية إلى النهاية. وبالتالي ، إذا بدأ تشغيل أغنية i ، فسوف يقضي بالضبط t
i دقيقة عليها. لا يعجب Moxxi أيضًا عندما يتم تشغيل أغنيتين من نفس النوع على التوالي أو عند تكرار الأغاني.
ساعد Moxxi في حساب عدد التسلسلات المختلفة للأغاني (ترتيبها مهم) ، بإجمالي مدة T بالضبط ، بحيث لا توجد أغنيتان متتاليتان من نفس النوع في كل منهما وتكون جميع الأغاني في قائمة التشغيل مختلفة.
الإدخال: strong>
يحتوي السطر الأول من الإدخال على عددين صحيحين n و T (1 & le؛ n & le؛ 15، 1 & le؛ T & le؛ 225) & [مدش]؛ عدد الأغاني في الموسيقي والمدة الإجمالية المطلوبة على التوالي.
تحتوي الأسطر n التالية على أوصاف للأغاني: يحتوي السطر الأول على رقمين صحيحين t i و g i (1 & le؛ t i & le ؛ 15، 1 & le؛ g i & le؛ 3) & [مدش]؛ مدة الأغنية i ونوعها على التوالي.
الإخراج: strong>
طباعة عدد صحيح واحد و [مدش] ؛ عدد التسلسلات المختلفة للأغاني ، بإجمالي مدة T بالضبط ، بحيث لا تحتوي على أغنيتين متتاليتين من نفس النوع وجميع الأغاني في قائمة التشغيل مختلفة. نظرًا لأن الإجابة يمكن أن تكون كبيرة ، اطبعها modulo 10 9 + 7 (أي الباقي عند قسمة الرقم على الرقم 10 9 + 7).
أمثلة: strong>
نبسب ؛
<الجسم>
إدخال strong> |
الإخراج strong> |
3 3
1 1
1 2
1 3
| 6 |
3 3
1 1
1 1
1 3
| 2 |
التفسيرات: strong>
في المثال الأول ، يمكن لـ Moxxi إنشاء أي من خيارات قائمة التشغيل الستة عن طريق إعادة ترتيب الأغاني المتاحة: [1،2،3] ، [1،3،2] ، [2،1،3] ، [2،3،1 ] و [3،1،2] و [3،2،1] (يشار إلى أرقام الأغاني).
في المثال الثاني ، لا يمكن أن تكون الأغنيتان الأولى والثانية متتاليتين (لأن لهما نفس النوع). وبالتالي ، يمكن لـ Moxxi إنشاء قائمة تشغيل بإحدى طريقتين محتملتين: [1،3،2] و [2،3،1] (يشار إلى أرقام الأغاني).