Universal Cup Judging System

Universal Cup

시간 제한: 2.0 s 메모리 제한: 1024 MB 총점: 100
통계

การเก็งกำไรในตลาดอสังหาริมทรัพย์เป็นงานที่เครียดและมีรายได้ไม่แน่นอน มันจะช่วยได้ไหมถ้าคุณได้รับเงินกู้ก้อนโตจากพ่อแม่และสามารถคาดการณ์ราคาห้องชุดในวันที่เลือกได้อย่างแม่นยำ?

คุณเริ่มต้นโดยไม่มีห้องชุด แต่ยอดเงินในธนาคารของคุณคือ $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.