มัธยฐาน

โจทย์ปัญหาภาษาคอมพิวเตอร์

       กำหนดลำดับหลักของตัวเลข n ตัว ( ประกอบด้วย 1 ถึง n และไม่ซ้ำกัน ) จงหาว่ามีลำดับย่อยที่มีค่ามัธยฐานเท่ากับ k ทั้งสิ้นกี่ลำดับ

            กำหนดให้ลำดับย่อยมีคุณสมบัติดังนี้
                        1. ประกอบด้วยตัวเลข m ตัว โดยเริ่มตั้งแต่ตัวเลขที่ i ถึงตัวเลขที่ i+m-1 ของลำดับหลัก เมื่อ i เป็นจำนวนนับใดๆ ที่ 1 < i < n และ i+m-1 < n
                        2. m เป็นเลขคี่
                        3. ค่ามัธยฐานของลำดับย่อย คือ ค่าของตัวเลขที่มีค่าเป็นลำดับ (m+1)/2 เมื่อนำตัวเลขในลำดับย่อยมาเรียงจากน้อยไปมาก

ข้อมูลนำเข้า

บรรทัดแรกประกอบด้วยจำนวนนับ n และ k แทนจำนวนตัวเลขในลำดับหลัก และ ค่ามัธยฐานที่ต้องการทราบจำนวน ( 1 < k < n < 1000 000 )
บรรทัดที่ 2 ถึง 1+n แต่ละบรรทัดจะประกอบด้วยเลขโดด 1 จำนวน โดยในบรรที่ 1+i จะแสดงค่าของเลขลำดับที่ i ในลำดับหลัก 

ข้อมูลส่งออก

บรรทัดแรกและบรรทัดเดียวแสดงจำนวนลำดับย่อยที่มีค่ามัธยฐานเท่ากับ k

            Note คำตอบอาจมีค่ามากเกินว่าที่ int จะรองรับได้ คุณควรใช้ long long ในการเก็บค่าคำตอบ

หมายเหตุ

          30% ของชุดทดสอบทั้งหมด n < 10 
            50% ของชุดทดสอบทั้งหมด n < 1000
            70% ของชุดทดสอบทั้งหมด n < 100 000
            100% ของชุดทดสอบทั้งหมด n < 1000 000

โจทย์โดย : สรวิทย์  สุริยกาญจน์ ( PS.int )

ที่มา : ศูนย์ สอวน. โรงเรียนมหิดลวิทยานุสรณ์

ตัวอย่างข้อมูลนำเข้าตัวอย่างข้อมูลส่งออก
10 5
6 3 9 4 7 5 10 8 2 1 
6
10 5
10 2 6 4 7 1 5 8 9 3 
10