Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

แบบสอบถามเพื่อส่งคืนความแตกต่างที่แน่นอนระหว่างจำนวนที่น้อยที่สุดของ Lth และจำนวนที่น้อยที่สุดของ R-th ใน C++


ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมเพื่อค้นหาข้อความค้นหาเพื่อคืนค่าความแตกต่างที่แน่นอนระหว่างตัวเลขที่น้อยที่สุดที่ L กับจำนวนที่น้อยที่สุดใน R-

สำหรับสิ่งนี้ เราจะได้รับอาร์เรย์ที่มีจำนวนเต็มและคิวรี Q งานของเราคือค้นหาความแตกต่างที่แน่นอนระหว่างดัชนีของค่าที่น้อยที่สุดของ Lth และค่าที่น้อยที่สุดของ Rth

ตัวอย่าง

#include <bits/stdc++.h>
using namespace std;
//returning the result of a query
int respondingQuery(pair<int, int> arr[], int l, int r) {
   int result = abs(arr[l - 1].second - arr[r - 1].second);
   return result;
}
//implementing the queries
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