ধরুন আমাদের কিছু বিন্দু আছে, এবং একটি পূর্ণসংখ্যা k। k বিন্দু কভার করার জন্য আমাদের একটি বৃত্তের ন্যূনতম ব্যাসার্ধ খুঁজে বের করতে হবে যার কেন্দ্র (0, 0)। তাই বিন্দুগুলো যদি হয় (1, 1), (-1, -1), (1, -1), এবং k =3, তাহলে ব্যাসার্ধ হবে 2।
এখানে আমরা প্রতিটি বিন্দু এবং (0, 0) এর মধ্যে ইউক্লিডীয় দূরত্ব খুঁজে পাব, তারপর দূরত্বগুলি বাছাই করব এবং বাছাই করার পরে kth উপাদান ফেরত দেব।
উদাহরণ
#include<iostream> #include<algorithm> using namespace std; struct point{ int x, y; }; int minRadius(int k, point points[], int n) { int dist[n]; for (int i = 0; i < n; i++) dist[i] = points[i].x * points[i].x + points[i].y * points[i].y; // Sorting the distance sort(dist, dist + n); return dist[k - 1]; } int main() { int k = 3; point points[] = {{1, 1}, {-1, -1}, {1, -1}}; int n = sizeof(points)/sizeof(points[0]); cout << "Minimum radius: " << minRadius(k, points, n) << endl; }
আউটপুট
Minimum radius: 2