এই সমস্যায়, আমাদের একটি পৃষ্ঠায় থাকা তিনটি পয়েন্টের স্থানাঙ্ক দেওয়া হয়েছে। আমাদের কাজ হল কোণ দিয়ে পৃষ্ঠাটি ঘোরানো সম্ভব কিনা তা খুঁজে বের করা।
পৃষ্ঠার ঘূর্ণন এমনভাবে তৈরি করা হয়েছে যে 'x'-এর নতুন অবস্থানটি 'y'-এর পুরনো অবস্থান, 'y'-এর নতুন অবস্থানটি 'z'-এর পুরনো অবস্থান। এবং ঘূর্ণনের উপর ভিত্তি করে "হ্যাঁ" বা "না" প্রিন্ট করুন।
সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,
ইনপুট: x =(0, 1), y =(1, 0), z =(0, -1)
আউটপুট: হ্যাঁ
ব্যাখ্যা:
আমরা পৃষ্ঠাটিকে 90 o দ্বারা ঘোরাতে পারি .
সমাধান পদ্ধতি:
কিছু শর্ত সম্ভব হলে আমরা পৃষ্ঠাটিকে কিছু কোণে ঘোরাতে পারি।
এটি করা যেতে পারে যদি দূরত্বx এবং y এর মধ্যে থাকে y এবং z এর মধ্যে দূরত্বের সমান। এছাড়াও, যদি সমস্ত বিন্দু একই লাইনে থাকে তবে ঘূর্ণন সম্ভব নয়।
আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম,
উদাহরণ
#include<bits/stdc++.h> using namespace std; int possibleOrNot(int coordinates[3][2]){ long long dis1 = pow(coordinates[1][0] - coordinates[0][0], 2) + pow(coordinates[1][1] - coordinates[0][1], 2); long long dis2 = pow(coordinates[2][0] - coordinates[1][0], 2) + pow(coordinates[2][1] - coordinates[1][1], 2); if(dis1 != dis2) return 0; else if (coordinates[1][0] == ((coordinates[0][0] + coordinates[2][0]) / 2.0) && coordinates[1][1] == ((coordinates[0][1] + coordinates[2][1]) / 2.0)) return 0; else return 1; } int main() { int coordinates[3][2] = {{0 , 1}, {1 , 0}, {0, -1} } ; if ( possibleOrNot(coordinates)) cout<<"The rotation of page is possible"; else cout<<"The rotation of page is not possible"; return 0; }
আউটপুট
The rotation of page is possible