इस समस्या में, हमें एक पेज पर स्थित तीन बिंदुओं के निर्देशांक दिए गए हैं। हमारा कार्य जांचना है कि पेज को कोण द्वारा घुमाना संभव है या नहीं।
पेज का घुमाव इस तरह किया जाता है कि 'x' की नई स्थिति 'y' की पुरानी स्थिति है, 'y' की नई स्थिति 'z' की पुरानी स्थिति है। और घुमाव के आधार पर "हां" या "नहीं" प्रिंट करें।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट: x = (0, 1), y = (1, 0), z = (0, -1)
आउटपुट: Yes
व्याख्या:

हम पेज को 90o घुमा सकते हैं।
समाधान दृष्टिकोण:
हम पेज को कुछ कोण से घुमा सकते हैं यदि कुछ शर्तें संभव हैं।
यह तब किया जा सकता है जब 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