इस समस्या में, हमें तीन बिंदुओं के निर्देशांक दिए गए हैं जो एक पृष्ठ पर स्थित हैं। हमारा काम यह पता लगाना है कि पृष्ठ को कोण से घुमाना संभव है या नहीं।
पृष्ठ का रोटेशन इस तरह से किया जाता है कि '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