คำชี้แจงปัญหา
ไม่มี ผู้เข้าร่วมการแข่งขันแบ่งออกเป็น M ทีมในลักษณะใดลักษณะหนึ่งเพื่อให้แต่ละทีมมีผู้เข้าร่วมอย่างน้อยหนึ่งคน หลังจากการแข่งขันผู้เข้าร่วมแต่ละคู่จากทีมเดียวกันก็กลายเป็นเพื่อนกัน
งานของคุณคือเขียนโปรแกรมที่จะหาคู่ขั้นต่ำและจำนวนสูงสุดของเพื่อนที่อาจเกิดขึ้นได้เมื่อสิ้นสุดการแข่งขัน
อัลกอริทึม
<ก่อน>1. เราสามารถรับคู่สูงสุดโดยใช้สูตรด้านล่าง:maxPairs =((n – m) * (n – m + 1)) / 22 เราสามารถหาคู่ขั้นต่ำได้โดยใช้สูตรด้านล่าง:minPairs =m * (((n - m) / m + 1) * ((n - m) / m)) / 2 + ceil((n - m) / double(m)) * ((n - m) % m);ตัวอย่าง
#include#include ใช้เนมสเปซ std;void getPairs(int n, int m){ int maxPairs =((n - m + 1) * (n - m)) / 2; int minPairs =m * (((n - m) / m + 1) * ((n - m) / m)) / 2 + ceil((n - m) / double(m)) * ((n - m ) % เมตร); cout <<"คู่ขั้นต่ำ =" < ผลลัพธ์
เมื่อคุณคอมไพล์และรันโปรแกรมข้างต้น มันสร้างผลลัพธ์ดังต่อไปนี้−
คู่ขั้นต่ำ =1คู่สูงสุด =1