এই সমস্যায়, আমাদের একটি পৃষ্ঠার ওপর তিনটি পয়েন্টের কোঅর্ডিনেট দেওয়া আছে। আমাদের কাজ হল পৃষ্ঠাকে কোনো কোণে ঘুরানো সম্ভব কিনা তা খুঁজে বের করা।
পৃষ্ঠা ঘুরানো হবে এমনভাবে যে 'x'-এর নতুন অবস্থান হবে 'y'-এর পুরনো অবস্থান, 'y'-এর নতুন অবস্থান হবে 'z'-এর পুরনো অবস্থান। এবং ঘুরানো সম্ভব হলে "Yes" নয় তবে "No" প্রিন্ট করুন।
উদাহরণ দিয়ে বুঝি,
ইনপুট: x = (0, 1), y = (1, 0), z = (0, -1)
আউটপুট: হ্যাঁ
ব্যাখ্যা:

আমরা পৃষ্ঠাকে ৯০° ঘুরাতে পারি।
সমাধানের পদ্ধতি:
পৃষ্ঠাকে কোনো কোণে ঘুরানো সম্ভব হলে কিছু শর্ত পূরণ করতে হবে।
- 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