Trong bài toán này, chúng ta được cung cấp tọa độ của ba điểm nằm trên một trang. Nhiệm vụ của chúng tôi là tìm xem có thể xoay trang theo một góc hay không.
Việc xoay trang được thực hiện theo cách mà vị trí mới của ‘x’ là vị trí cũ của ‘y’, vị trí mới của ‘y’ là vị trí cũ của ‘z’. Và in “Có” hoặc “Không” dựa trên vòng quay.
Hãy lấy một ví dụ để hiểu vấn đề,
Đầu vào: x =(0, 1), y =(1, 0), z =(0, -1)
Đầu ra: Có
Giải thích:
Chúng ta có thể xoay trang 90 o .
Phương pháp tiếp cận giải pháp:
Chúng tôi có thể xoay trang theo một góc nào đó nếu một số điều kiện có thể.
Điều này có thể được thực hiện nếu khoảng cách giữa x và y cũng giống như khoảng cách giữa y và z. Ngoài ra, nếu tất cả các điểm nằm trên cùng một đường thì không thể quay được.
Chương trình minh họa hoạt động của giải pháp của chúng tôi,
Ví dụ
#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; }
Đầu ra
The rotation of page is possible