สมมติว่าเรามีอาร์เรย์ A ที่มีองค์ประกอบ n และตัวเลข m มี n นักเรียนให้ anexam. คะแนนสูงสุดที่เป็นไปได้คือ ม. A[i] คือคะแนนของนักเรียน เราสามารถจัดการคะแนนนักเรียนแต่ละคนได้ แต่ต้องเป็นไปตามเงื่อนไข คะแนนจะไม่เกิน m คะแนนทั้งหมดเป็นจำนวนเต็มและคะแนนเฉลี่ยของนักเรียนทุกคนจะไม่เปลี่ยนแปลง หากเราต้องการเพิ่มคะแนนของบุคคลที่หนึ่งให้ได้มากที่สุด เราจะให้คะแนนสูงสุดเท่าที่เป็นไปได้
ดังนั้น ถ้าอินพุตเป็น A =[1, 2, 3, 4]; m =10 แล้วผลลัพธ์จะเป็น 10 เพราะค่าเฉลี่ยคือ 2.5 เราสามารถกำหนดคะแนน [10, 0, 0, 0] โดยที่ค่าเฉลี่ยเท่ากัน แต่คะแนนอันดับแรกคือสูงสุด
ขั้นตอน
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
sum :=0n :=ขนาดของ Afor เริ่มต้น j :=0 เมื่อ jตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
#includeใช้เนมสเปซ std;int แก้ปัญหา (เวกเตอร์ A, int m){ ผลรวม int =0; int n =A.size(); สำหรับ (int j =0; j A ={ 1, 2, 3, 4 }; int m =10; cout <<แก้ (A, m) < อินพุต
{ 1, 2, 3, 4 }, 10ผลลัพธ์
10