Universal Cup Judging System

Universal Cup

Límite de tiempo: 2.0 s Límite de memoria: 1024 MB Puntuación total: 100
Estadísticas

Спекуляція на ринку нерухомості — стресова робота з нестабільним заробітком. Чи допомогло б вам, якби ви отримали величезний кредит від батьків і могли точно передбачати ціни на квартири у вибрані дні?

Спочатку у вас немає квартири, але ваш банківський баланс становить $10^{100}$. Оскільки у вас немає ліцензії рієлтора, ви можете володіти щонайбільше однією квартирою одночасно. Ви вже пригледіли конкретну квартиру в хорошому місці, і саме її ви можете купувати, а потім продавати, можливо, кілька разів.

Галузевий портал MyHouse опублікував прогнозовані інтервали $[a_i, b_i]$ (де $a_i < b_i$) ціни цієї квартири на наступні $n$ днів. Ціна квартири в $i$-й день — це випадкове дійсне число $c_i$, вибране рівномірно випадково з відрізка $[a_i, b_i]$. За замовчуванням ви дізнаєтеся ціну $c_i$ на початку $i$-го дня. Після цього ви повинні вирішити, чи здійснювати угоду. Якщо ви володієте квартирою, ви можете продати її за $c_i$, а якщо не володієте — купити за $c_i$.

Лише сьогодні (до початку першого дня) портал MyHouse дозволяє новим користувачам дізнатися точні ціни $c_i$ для вибраної множини з $k$ днів. Тобто зараз ви вибираєте множину з $k$ днів і дізнаєтеся їхні ціни, тоді як для кожного з решти $n - k$ днів ви дізнаватиметеся ціну на початку відповідного дня.

Через $n$ днів ви повинні залишитися без квартири; ваш прибуток — це різниця між вашим кінцевим і початковим банківським балансом. Визначте максимальне математичне сподівання* прибутку за умови оптимального вибору множини з $k$ днів і подальшого оптимального прийняття рішень щодо угод у кожен із $n$ днів.

*Математичне сподівання — це середнє значення випадкової величини, зважене за ймовірностями. Інтуїтивно це результат, на який можна очікувати в середньому при багаторазовому повторенні випадкового експерименту.

Вхідні дані

Перший рядок містить два цілі числа $n$ і $k$ ($0 \le k \le n \le 300\,000$; $1 \le n$), які позначають відповідно кількість днів і кількість цін, які ви можете дізнатися одразу.

Наступні $n$ рядків описують цінові інтервали; $i$-й рядок містить два цілі числа $a_i$ та $b_i$ ($1 \le a_i < b_i \le 10^6$).

Вихідні дані

Виведіть одне дійсне число — максимально можливе математичне сподівання прибутку через $n$ днів.

Допустима відносна або абсолютна похибка становить $10^{-6}$. Тобто, якщо ви виведете $x$, а правильна точна відповідь дорівнює $y$, то має виконуватися нерівність $|x - y| \le 10^{-6} \cdot \max(1, y)$. Ви можете вивести до $20$ цифр після десяткової крапки.

Приклади

input

4 0
10 30
10 30
40 50
30 60

output

28.75

input

4 1
10 30
10 30
40 50
30 60

output

31.3888888889

input

6 3
10 50
30 70
50 70
30 50
30 40
10 40

output

33.6805555556

Примітка

У першому тесті маємо $k = 0$, тому кожна ціна стає відомою на початку відповідного дня. Існує оптимальна стратегія: купити квартиру в день $1$ або $2$ з очікуваними витратами $17.5$, а потім продати її в день $3$ або $4$ з очікуваним доходом $46.25$. Очікуваний прибуток дорівнює $46.25 - 17.5 = 28.75$.

У другому тесті маємо $k = 1$, і оптимально вибрати день $4$, тож ми одразу дізнаємося дійсне число $c_4$ з відрізка $[30, 60]$. Очікуваний прибуток за оптимальних рішень щодо угод становить $31\frac{7}{18}$.

У третьому тесті оптимальним вибором множини з $k$ днів є $\{2, 3, 6\}$. Ми одразу дізнаємося ціни $c_2$, $c_3$ та $c_6$.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.