यहां हम एक दिलचस्प समस्या देखेंगे, हमें एक जोड़ी (x, y) मिलेगी, जहां x और y श्रेणी में हैं इसलिए l <=x, y <=r, जोड़ी में एक संपत्ति होगी, x का मान y को विभाजित करता है . यदि कई जोड़े उपलब्ध हैं, तो केवल एक को चुनें।
हम इस समस्या को O(1) समय में हल कर सकते हैं, यदि हमें निचली सीमा l और 2l का मान प्राप्त हो। हम जानते हैं कि y/x का सबसे छोटा मान 2 हो सकता है, और यदि रेंज में कुछ बड़ा मान मौजूद है तो 2 रेंज में होगा। और अगर हम x बढ़ाते हैं, तो यह भी 2x बढ़ जाएगा, इसलिए l और 2l दी गई सीमा में आने वाला न्यूनतम जोड़ा होगा।
उदाहरण
#include<iostream>
using namespace std;
void getPair(int l, int r) {
int x = l;
int y = 2 * l;
cout << "(" << x << ", " << y << ")" << endl;
}
int main() {
int l = 3, r = 6;
getPair(l, r);
} आउटपुट
(3, 6)