رتبه‌بندی


  • محدودیت زمان: ۱ ثانیه
  • محدودیت حافظه: ۲۵۶ مگابایت

جمشید کاظمی (که با نام مستعار کامران پوریایی شناخته می‌شود)، به تازگی آدم شده و از زندان آزاد شده است. او که به مدت طولانی در زندان بوده، از فضای برنامه‌نویسی و کامپیوتر دور شده و می‌خواهد با شرکت در مسابقات برنامه‌نویسی دوباره به این فضا بازگردد. برای همین به سایت کوئرا آمد و بین مسابقات برگزار شده گشت و گذار کرد. در این بین مسابقه‌ی Snapp Challenge توجهش را جلب کرد. نحوه‌ی رتبه‌بندی این مسابقه (مانند همین مسابقه‌ای که اکنون در حال شرکت کردن در آن هستید!) به این شکل بود: شرکت‌کننده‌ها به ترتیب تعداد سوال‌هایی که آن‌ها را کامل حل می‌کنند مرتب می‌شوند. افرادی که به تعداد برابر سوال حل می‌کنند، به ترتیب جریمه*شان مرتب می‌شوند؛ یعنی هر کسی جریمه‌اش کمتر باشد رتبه‌ی بهتری می‌گیرد. مقدار *جریمه به این صورت محاسبه می‌شود:

فرض کنید که مجموع زمان ارسال نهایی شرکت‌کننده برای سوال‌هایی که حل کرده aa ثانیه باشد، و برای آن سوال‌ها در مجموع bb بار ارسال غلط (قبل از ارسال نهایی) فرستاده است. (مثلاً ارسالی که پاسخ غلط می‌دهد، یا ارسالی که زمان اجرایش مناسب نیست.) در این صورت جریمه‌ی شرکت‌کننده برابر a+1200×ba + 1200 \times b خواهد بود. یعنی هر ارسال غلط مانند ۱۲۰۰ ثانیه (برابر ۲۰ دقیقه) دیرتر فرستادن پاسخ نهایی است.

در نهایت افرادی که هم تعداد سوال برابری حل کرده‌اند و هم جریمه‌شان برابر است، رتبه‌ی برابری می‌گیرند. مثلاُ اگر ۲ نفر رتبه‌ی ۵ بیاورند، نفر بعدی رتبه‌ی ۷ خواهد بود و مسابقه رتبه‌ی ۶ نخواهد داشت. و اگر ۴ نفر رتبه‌ی ۳ بگیرند، نفر بعدی رتبه‌ی ۷ خواهد گرفت و مسابقه رتبه‌های ۴ و ۵ و ۶ نخواهد داشت.

این نحوه‌ی رتبه‌بندی و مخصوصاً ۲۰ دقیقه جریمه برای هر ارسال غلط، جمشید را به فکر فرو برد که آیا این بهترین روش برای رتبه‌بندی است؟ برای همین به این فکر کرد که این زمان ۲۰ دقیقه‌ای را تغییر دهد. مشخص است که مقدار منطقی این عدد ممکن است هر مقدار اعشاری باشد؛ پس برای انتخاب مقدار درست باید بطور خاصی تحلیل انجام داد. او این تحلیل را چنین انجام می‌دهد: فرض کنید رتبه‌ی یک شرکت‌کننده در رتبه‌بندی با فرض ۲۰ دقیقه جریمه، rr است. حال فرض کنید که مقدار جریمه به ازای هر ارسال غلط تغییر کند و در رتبه‌بندی که با فرض مقدار جدید صورت می‌گیرد، رتبه‌ی این شرکت‌کننده برابر rr' بشود. اگر رتبه‌ی شرکت‌کننده در این حالت بهتر بود (یا r>rr > r')، شرکت‌کننده به مقدار (rr)2(r - r')^2 خوش‌حال می‌شود و اگر رتبه بدتر شده بود، به مقدار (rr)2(r' - r)^2 ناراحت می‌شود که مانند این است که (rr)2-(r' - r)^2 خوش‌حال شده است. حال مجموع میزان خوش‌حال شدن تمامی شرکت‌کننده‌ها در این رتبه‌بندی را میزان خوب بودن مقدار rr' برای جریمه‌ی رتبه‌بندی در نظر می‌گیریم.

جمشید که اکنون آدم خوب و خوش‌قلبی شده است، می‌خواهد از روی این معیار که از روی خوش‌حالی افراد تعیین شده رتبه‌بندی‌ها را بسنجد. برای همین به دنبال بیشترین میزان خوب بودن به‌ازای تمامی مقادیر جریمه‌ی ممکن است. (تمام مقادیر صحیح یا اعشاری مثبت یا منفی می‌توانند برای جریمه انتخاب شوند!) با دریافت مقادیر aa و bb و تعداد سوال‌های حل شده برای هریک از شرکت‌کننده‌های یک مسابقه، بیشترین میزان خوب بودن ممکن برای رتبه‌بندی این مسابقه را محاسبه کنید.

در واقعیت، چنین تحلیلی در رابطه با رتبه‌بندی بهینه در کوئرا انجام شد تا در صورت نیاز مقدار جریمه تغییر بکند!

ورودی🔗

در خط اول ورودی یک عدد nn آمده است که تعداد شرکت‌کنندگان در مسابقه را نشان می‌دهد. سپس در هریک از nn خط بعدی سه عدد می‌آید که برای یک شرکت‌کننده به ترتیب تعداد سوال حل شده، مقدار aa (مجموع زمان ارسال‌های نهایی برای سوال‌های حل شده به ثانیه) و مقدار bb (تعداد ارسال‌های غلط برای سوال‌های حل شده) می‌باشند.

تعداد سوال حل شده توسط هر نفر عددی طبیعی و حداکثر ۷ است. 1n1001 \le n \le 100 0a86 4000 \le a \le 86\ 400 0b700 \le b \le 70

خروجی🔗

در تنها خط خروجی یک عدد چاپ کنید که برابر بیش‌ترین میزان خوب بودن بین تمام مقادیر مختلف برای جریمه است.

مثال🔗

ورودی نمونه ۱🔗

4
1 100 10
1 100 30
1 100 50
1 100 70
Plain text

خروجی نمونه ۱🔗

14
Plain text

ورودی نمونه ۲🔗

4
1 30 2
1 60 1
2 70 1
2 90 3
Plain text

خروجی نمونه ۲🔗

1
Plain text