मान लीजिए हमारे पास n तत्वों वाला एक ऐरे A है। A[i] iवें छात्र के प्रोग्रामिंग कौशल को दर्शाता है। A में सभी तत्व विशिष्ट हैं। हम उन्हें टीमों में विभाजित करना चाहते हैं जैसे कि:
- ऐसे कोई दो छात्र i और j नहीं होने चाहिए, जैसे कि |A[i] - A[j]| = 1 एक ही टीम से संबंधित हों
- टीमों की संख्या न्यूनतम संभव हो।
उदाहरण के लिए, यदि इनपुट A = [2, 3, 4, 99, 100] है, तो आउटपुट 2 होगा, क्योंकि समूह [2, 3, 4] और [99, 100] हैं।
चरण
इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:
dem := 1 ऐरे A को सॉर्ट करें i := 1 से A के आकार-1 तक, करें: यदि A[i] - A[i - 1], 1 के बराबर है, तो: dem := 2 dem वापस करें
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
#include <bits/stdc++.h> using namespace std; int solve(vector<int> A) { int dem = 1; sort(A.begin(), A.end()); for (int i = 1; i < A.size(); i++) if (A[i] - A[i - 1] == 1) dem = 2; return dem; } int main() { vector<int> A = { 2, 3, 4, 99, 100 }; cout << solve(A) << endl; } इनपुट
{ 2, 3, 4, 99, 100 } आउटपुट
2