এই টিউটোরিয়ালে আমরা শিখব কিভাবে একটি নিয়মিত N-বহুভুজের ওপর তৃতীয় ব্যক্তির অবস্থান বের করা যায়।
একটি নিয়মিত N-বহুভুজ দেওয়া আছে। এবং সেখানে ইতিমধ্যে দুজন ব্যক্তি দুটি ভিন্ন পয়েন্টে দাঁড়িয়ে আছে। আমাদের কাজ হলো তৃতীয় পয়েন্ট বের করা যাতে প্রথম দুজন ব্যক্তি এবং তৃতীয় ব্যক্তির মধ্যে দূরত্ব ন্যূনতম হয়।
সমস্যা সমাধানের ধাপগুলো:
N এবং দুটি পয়েন্ট A এবং B ইনিশিয়ালাইজ করুন।
তৃতীয় ব্যক্তির পজিশন এবং মিনিমাম সম খুঁজে বের করার জন্য ভেরিয়েবল ইনিশিয়ালাইজ করুন।
১ থেকে N পর্যন্ত ইটারেট করুন।
যদি বর্তমান পজিশন A বা B হয়, তবে স্কিপ করুন।
বর্তমান পজিশন এবং A, B-এর মধ্যে निरপেক্ষ পার্থক্যের যোগফল বের করুন।
এটিকে মিনিমাম সমের সাথে তুলনা করুন।
যদি বর্তমান সম মিনিমাম সমের চেয়ে কম হয়, তবে পজিশন এবং মিনিমাম সম আপডেট করুন।
তৃতীয় ব্যক্তির পজিশন প্রিন্ট করুন।
উদাহরণ
নিচে কোডটি দেওয়া হলো:
#include <bits/stdc++.h> using namespace std; int findThirdPersonStandingVertex(int N, int A, int B) { int position = 0; int minimum_sum = INT_MAX, sum; for (int i = 1; i <= N; i++) { // skipping the predefined vertices if (i == A || i == B) { continue; } else { // length between the current vertext to A and B sum = abs(i - A) + abs(i - B); // checking whether the current sum is less than previous sum if (sum < minimum_sum) { // updating the minimum sum and position of vertext minimum_sum = sum; position = i; } } } return position; } int main() { int N = 7, A = 5, B = 7; cout << "Vertex: " << findThirdPersonStandingVertex(N, A, B) << endl; return 0; }আউটপুট
উপরের প্রোগ্রামটি এক্সিকিউট করলে নিচের ফলাফল পাওয়া যাবে:
Vertex: 6
উপসংহার
টিউটোরিয়াল সম্পর্কে কোনো প্রশ্ন থাকলে কমেন্ট সেকশনে জানান।