Ispitati da li postoji kolizija između dva pravougaonika čije su ivice paralelne koordinatnim osama i koji su zadati gornjim levim temenom i donjim desnim temenom.
Sa standardnog ulaza unosi se 8 realnih vrednosti. U svakom redu unosi se par realnih vrednosti \(x\) i \(y\) koje predstavljaju koordinate određene tačke. Prvo se unose koordinate gornjeg levog temena i koordinate donjeg desnog temena jednog pravougaonika, a zatim i koordinate gornjeg levog temena i koordinate donjeg desnog temena drugog pravougaonika.
Na standardni izlaz ispisati da
ukoliko postoji kolizija
imeđu dva pravougaonika, inače ispisati ne
.
0 2 3 0 1 1 5 0
da
0 2 3 0 10 10 11 8
ne
Ukoliko se prvi pravougaonik nalazi sa leve ili desne strane drugog pravougaonika, onda ne dolazi do kolizije. Slično, ukoliko se prvi pravougaonik nalazi ispod ili iznad drugog pravougaonika, onda takođe ne dolazi do kolizije. U svim ostalim slučajevima nastaje kolizija.
#include <iostream>
#include <vector>
using namespace std;
struct Point {
double x;
double y;
};
bool rect_collision(const Point &L1, const Point &R1,
const Point &L2, const Point &R2)
{
if (R1.x < L2.x || R2.x < L1.x) {
return false;
}
if (L2.y < R1.y || L1.y < R2.y) {
return false;
}
return true;
}
int main(void)
{
, R1, L2, R2;
Point L1
>> L1.x >> L1.y;
cin >> R1.x >> R1.y;
cin >> L2.x >> L2.y;
cin >> R2.x >> R2.y;
cin
if (rect_collision(L1, R1, L2, R2)) {
<< "da" << endl;
cout } else {
<< "ne" << endl;
cout }
return 0;
}