Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

จัดเรียง Binary String ให้ได้ค่าสูงสุดในช่วง Indices ใน C/C++


ในกรณีของ string ที่ประกอบด้วย 0 และ 1 เท่านั้น เราได้รับ M ranges ที่ไม่ intersect คือ A, B (A <= B) โดยเฉพาะ [A1, B1], [A2, B2], ..., [AM, BM] ไม่มี interval ใด overlap กัน − formally สำหรับ valid i, j ที่ i!=j ไม่ว่า Ai

กิจกรรมคือหา valid permutation ที่ satisfy 2 เงื่อนไขพร้อมกัน −

  • ผลรวมของตัวเลขระหว่าง M ranges ที่ให้มา จะมากที่สุด

  • String จะเป็น lexicographically maximum สตริง 1100 สูงกว่า 1001

Examples

Input 11100 3 3 4 5 5 Output 00111 First we put 1's in position 3 and 4 then in 5 as there are no 1's left, the string formed is 00111.
Input 0000111 2 1 1 1 2 Output 1110000

ในตัวอย่างข้างต้น เราวาง 1 ในตำแหน่ง 1 และ 2 ก่อน แล้วเหลือ 1 อีกตัว

ดังนั้น เราใช้มันเพื่อ maximize string lexicographically วางในตำแหน่งที่ 3 และการจัดเรียงเสร็จสมบูรณ์