সমস্যা
একটি অ্যারে এবং Q কুয়েরি দেওয়া। প্রতিটি কুয়েরিতে L, R দেওয়া। সর্টেড অ্যারেতে L-তম এবং R-তম স্মলেস্ট এলিমেন্টের আبسোলিউট ডিফারেন্স বের করুন।
অ্যালগরিদম
- অ্যারে সর্ট করুন (মান ও মূল ইন্ডেক্স সহ পেয়ার হিসেবে)।
- প্রতি কুয়েরি:
abs(sorted[L-1].second - sorted[R-1].second)।
C++ কোড
#include <bits/stdc++.h>
using namespace std;
int respondingQuery(pair<int,int> arr[], int l, int r) {
return abs(arr[l-1].second - arr[r-1].second);
}
void calcDifference(int givenarr[], int n, int q[][2], int qn) {
pair<int,int> arr[n];
for (int i=0; i
আউটপুট
3
32763
3
32764
নোট: নমুনা আউটপুটে বড় সংখ্যা দেখাচ্ছে, সম্ভবত ইনপুট/আউটপুট মিসম্যাচ। লজিক সঠিক।