समस्या कथन
एन प्रतियोगिता के प्रतिभागियों को M . में विभाजित किया गया था टीमों को किसी तरह से ताकि प्रत्येक टीम में कम से कम एक प्रतिभागी हो। प्रतियोगिता के बाद एक ही टीम के प्रतिभागियों की प्रत्येक जोड़ी मित्र बन गई।
आपका काम एक प्रोग्राम लिखना है जो प्रतियोगिता के अंत तक बनने वाले दोस्तों के न्यूनतम और अधिकतम जोड़े को ढूंढेगा।
एल्गोरिदम
1. We can obtain max pairs using below formula: maxPairs = ((n – m) * (n – m + 1)) / 2 2. We can obtain min pairs using below formula: minPairs = m * (((n - m) / m + 1) * ((n - m) / m)) / 2 + ceil((n - m) / double(m)) * ((n - m) % m);
उदाहरण
#include <iostream> #include <cmath> using namespace 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) % m); cout << "Minimum pairs = " << minPairs << "\n"; cout << "Maximum pairs = " << maxPairs << "\n"; } int main(){ getPairs(3, 2); return 0; }
आउटपुट
जब आप उपरोक्त प्रोग्राम को संकलित और निष्पादित करते हैं। यह निम्न आउटपुट उत्पन्न करता है-
Minimum pairs = 1 Maximum pairs = 1