Advertisement
a53

poz

a53
Nov 18th, 2018
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.70 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int poz(int x1,int y1,int L1,int l1,int x2,int y2,int L2,int l2)
  5. {
  6. if(x1==x2&&y1==y2&&L1==L2&&l1==l2)
  7. return 1; /// Dreptunhiurile sunt identice
  8. if((x1<=x2&&y1<=y2&&x1+L1>=x2+L2&&y1+l1>=y2+l2)||
  9. (x2<=x1&&y2<=y1&&x2+L2>=x1+L1&&y2+l2>=y1+l1))
  10. return 0; /// Primul dreptunhi se afla in interiorul celui de-al doilea sau invers
  11. if((x1>=x2&&x1<=x2+L2&&y1>=y2&&y1<=y2+l2)|| /// Coltul stanga sus al primului (x1,y1)
  12. (x2>=x1&&x2<=x1+L1&&y2>=y1&&y2<=y1+l1)|| /// Coltul stanga sus al celui de-al doilea (x2,y2)
  13. (x1+L1>=x2&&x1+L1<=x2+L2&&y1>=y2&&y1<=y2+l2)|| /// Coltul dreapta sus al primului (x1+L1,y1)
  14. (x2+L2>=x1&&x2+L2<=x1+L1&&y2>=y1&&y2<=y1+l1)|| /// Coltul dreapta sus al celui de-al doilea (x2+L2,y2)
  15. (x1>=x2&&x1<=x2+L2&&y1+l1>=y2&&y1+l1<=y2+l2)|| /// Coltul stanga jos al primului (x1,y1+l1)
  16. (x2>=x1&&x2<=x1+L1&&y2+l2>=y1&&y2+l2<=y1+l1)|| /// Coltul stanga jos al celui de-al doilea (x2,Y2+l2)
  17. (x1+L1>=x2&&x1+L1<=x2+L2&&y1+l1>=y2&&y1+l1<=y2+l2)|| /// Coltul dreapta jos al primului (x1+L1,y1+l1)
  18. (x2+L2>=x1&&x2+L2<=x1+L1&&y2+l2>=y1&&y2+l2<=y1+l1)) /// Coltul dtreapta jos al celui de-al doilea (x2+L2,y2+L2)
  19. return 3; /// Daca cele doua dreptunghiuri se suprapun partial
  20. return 2; /// Cele doua dreptunghiuri nu au niciun punct comun
  21. }
  22.  
  23. int main()
  24. {
  25. cout<<poz(100, 100, 300, 200, 150, 150, 100, 130)<<endl; /// returneaza 0
  26. cout<<poz(100, 100, 100, 200, 100, 100, 100, 200)<<endl; /// returneaza 1
  27. cout<<poz(50, 50, 100, 50, 200, 100, 100, 130)<<endl; /// returneaza 2
  28. cout<<poz(50, 50, 100, 50, 30, 40, 100, 130)<<endl; /// returneaza 3
  29. return 0;
  30. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement