इस ट्यूटोरियल में, हम Lवें सबसे छोटे नंबर और Rवें सबसे छोटे नंबर के बीच निरपेक्ष अंतर लौटाने के लिए क्वेरीज खोजने के प्रोग्राम पर चर्चा करेंगे।
इसके लिए हमें एक ऐरे दिया जाएगा जिसमें पूर्णांक होंगे और Q क्वेरीज होंगी। हमारा कार्य Lवें सबसे छोटे और Rवें सबसे छोटे मानों के इंडेक्स के बीच निरपेक्ष अंतर खोजना है।
उदाहरण
#include <bits/stdc++.h> using namespace std; //क्वेरी का परिणाम लौटाना int respondingQuery(pair<int, int> arr[], int l, int r) { int result = abs(arr[l - 1].second - arr[r - 1].second); return result; } //क्वेरीज को लागू करना void calcDifference(int givenarr[], int a, int q[][2], int b){ pair<int, int> arr[a]; for (int i = 0; i < a; i++) { arr[i].first = givenarr[i]; arr[i].second = i; } sort(arr, arr + a); for (int i = 0; i < b; i++) cout << respondingQuery(arr, q[i][0], q[i][1]) << endl; } int main() { int arr[] = { 1, 7, 4, 2, 8}; int arraySize = sizeof(arr) / sizeof(arr[0]); int query[][2] = { { 2, 7 }, { 4, 8 }, { 1, 2 }, { 8, 1 }}; int querySize = sizeof(query) / sizeof(query[0]); calcDifference(arr, arraySize, query, querySize); return 0; } आउटपुट
3 32763 3 32764