فهرست مندرجات

Money

حمید در حساب خود ‎$k$‎ ریال پول دارد. می‌دانیم که او باید شب روز ‎$d_1$ $c_1$‎ ریال ، شب روز ‎$d_2$ $c_2$‎ ریال و ‎$\ldots$‎ و شب روز ‎$d_n$ $c_n$‎ ریال پول بابت پول‌هایی که از دوستان خودش قرض گرفته به دوستان خودش پس بدهد. از آنجایی که او هیچ منبع درامدی ندارد ، تنها راهی که می‌تواند با استفاده از آن بدهی‌های خودش را پس بدهد خرید بسته‌های بیمه است. خرید بسته بیمه به این صورت است که در صورتی که حمید در روز ‎$i \geq 1$‎ام حداقل ‎$h$‎ واحد پول داشته باشد می‌تواند یک بسته بیمه بخرد و از روز ‎$i+1$‎ام به بعد صبح هر روز ‎$q$‎ ریال به حساب او پول واریز می‌شود. حمید می‌تواند در یک روز بیش از یک بسته بیمه بخرد ولی او می‌تواند حداکثر ‎$X$‎ بسته بیمه خریداری کند. شما باید برنامه‌ای بنویسید که به دست بیاورد آیا حمید می‌تواند طوری عملی کند که همه بدهی‌های خود را بدهد؟ در صورتی که جواب مثبت است باید روشی را چاپ کنید که با خرید کمترین تعداد بسته بیمه این کار را انجام دهد.

ورودی

خروجی

‎ به ازای هر تست در صورتی که این کار امکان‌پذیر نیست در یک سطر کلمه ‎NO‎ و در غیر این صورت کلمه ‎YES‎ را چاپ کنید و در سطر بعدی عدد ‎$r$‎ نشان دهنده تعداد بیمه‌هایی که حمید باید بخرد و پس از آن ‎$r$‎ عدد بنویسید که روزهایی که حمید باید بسته‌های بیمه را بخرد را نشان می‌دهد. در صورت وجود چند جواب برای یک تست یکی از آن‌ها را چاپ کنید.

محدودیت‌ها

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

ورودی نمونه خروجی نمونه
2‎
3 100 2 2 1‎
3‎
5‎
2 100 3 2 1‎
3‎
4‎
YES‎
1 1‎
NO‎