मान लीजिए कि हमारे पास n तत्वों के साथ एक सरणी A है, और दूसरी संख्या d है। ड्रीमलैंड की सेना के नियमों के अनुसार, एक टोही इकाई में ठीक दो सैनिक होने चाहिए। चूंकि इन दोनों सैनिकों में अधिक अंतर नहीं होना चाहिए, इसलिए उनकी ऊंचाई अधिकतम d सेंटीमीटर से भिन्न हो सकती है। ऐसे n सैनिक हैं जिनकी ऊँचाइयाँ सरणी A में संग्रहीत हैं। कुछ सैनिक समान ऊँचाई के हैं। हमें यह पता लगाना होगा कि इन n सैनिकों से टोही इकाई बनाने के कितने तरीके मौजूद हैं।
तो, अगर इनपुट ए =[10, 20, 50, 60, 65] की तरह है; d =10, तो आउटपुट 6 होगा, क्योंकि (10, 20), (20, 10), (50, 60), (60, 50), (60, 65), (65, 60) संभव हैं। इकाइयाँ।
कदम
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
ans := 0 for initialize i := 1, when i < size of A, update (increase i by 1), do: for initialize j := 0, when j < i, update (increase j by 1), do: if |A[i] - A[j]| <= d, then: (increase ans by 1) return ans * 2
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
#include <bits/stdc++.h> using namespace std; int solve(vector<int> A, int d){ int ans = 0; for (int i = 1; i < A.size(); i++) for (int j = 0; j < i; j++) if (abs(A[i] - A[j]) <= d) ans++; return ans * 2; } int main(){ vector<int> A = { 10, 20, 50, 60, 65 }; int d = 10; cout << solve(A, d) << endl; }
इनपुट
{ 10, 20, 50, 60, 65 }, 10
आउटपुट
6