Intersecții de semiplane orizontale și verticale


Trimite soluție

Puncte: 10
Limita de timp: 1.0s
Python 3 2.0s
Limita de memorie: 16M
Python 3 64M

Autori:
Tipuri de probleme
Limbajele acceptate
C, C++, Java, Python

Descriere

Orice dreaptă din \(\mathbb{R}^2\) împarte planul în două jumătăți, numite semiplane. Fiindcă o dreaptă în plan este definită de o ecuație de forma \(a x + b y + c = 0\) (cu \(a \not= 0 \) sau \(b \not=0\)), cele două semiplane corespunzătoare acesteia pot fi descrise ca mulțimile de puncte \((x, y)\) pentru care \(a x + b y + c \ge 0\), respectiv \(a x + b y + c \le 0\). Pentru aceste semiplane, dreapta care le determină se numește dreaptă suport.

Pentru această problemă, va trebui să determinați natura intersecției a \(n\) semiplane. Oricare din aceste semiplane este orizontal (paralel cu axa \(Ox\)) sau vertical (paralel cu axa \(Oy\)).

Date de intrare

Se vor citi de la tastatură un număr natural \(n\), reprezentând numărul de semiplane care trebuie intersectate, și apoi \(n\) triplete de numere întregi \(a_i \ b_i \ c_i\), separate prin câte un spațiu, reprezentând coeficienții care definesc inecuația semiplanului \(i\), inecuație de forma \(a_i x + b_i y + c_i \le 0\).

Toate semiplanele citite vor fi fie orizontale, fie verticale (acest lucru nu mai trebuie verificat).

Date de ieșire

Se va afișa pe ecran unul dintre următoarele șiruri de caractere:

  • VOID, dacă intersecția celor \(n\) semiplane este vidă.
  • BOUNDED, dacă intersecția celor \(n\) semiplane este nevidă și mărginită.
  • UNBOUNDED, dacă intersecția celor \(n\) semiplane este nevidă și nemărginită.

Restricții și precizări

  • \(1 \leq n \leq 10^5\).
  • \(-10^7 \leq a_i, b_i, c_i \leq 10^7\)

Exemple

Exemplul 1
Input
3
1 0 -1
-1 0 2
0 1 3
Output
VOID
Explicație

Sunt trei semiplane, care au inecuațiile \(x - 1 \leq 0\), \(-x + 2 \leq 0\), respectiv \(y + 3 \leq 0\). Inecuațiile pot fi rescrise \(x \leq 1\), \(x \geq 2\), \(y \leq -3\).

Deoarece nu există niciun punct în \(\mathbb{R}^2\) care să aibă abscisa mai mică sau egală cu \(1\) și mai mare sau egală cu \(2\) în același timp, intersecția este vidă.

Semiplanele au intersecția vidă.

Exemplul 2
Input
4
-1 0 1
1 0 -2
0 1 3
0 -2 -8
Output
BOUNDED
Explicație

Sunt patru semiplane, care au inecuațiile \(-x + 1 \leq 0\), \(x - 2 \leq 0\), \(y + 3 \leq 0\), respectiv \(-2 y - 8 \leq 0\). Inecuațiile pot fi rescrise \(x \geq 1\), \(x \leq 2\), \(y \leq -3\), \(y \geq -4\).

Punctele care întrunesc condiția \(1 \leq x \leq 2\) sunt cele din fâșia verticală dintre dreptele \(x = 1\) și \(x = 2\). Punctele care întrunesc condiția \(-4 \leq y \leq -3\) sunt cele din fâșia orizontală dintre dreptele \(y = -4\) și \(y = -3\). Intersecția lor este dreptunghiul determinat de punctele \((1, -4), (2, -4), (2, -3), (1, -3)\), deci este o mulțime nevidă și mărginită.

Semiplanele au intersecția nevidă, mărginită.

Exemplul 3
Input
3
-1 0 1
1 0 -2
0 1 3
Output
UNBOUNDED
Explicație

Sunt trei semiplane, care au inecuațiile \(-x + 1 \leq 0\), \(x - 2 \leq 0\), respectiv \(y + 3 \leq 0\). Inecuațiile pot fi rescrise \(x \geq 1\), \(x \leq 2\), \(y \leq -3\).

Punctele care întrunesc condiția \(1 \leq x \leq 2\) sunt cele din fâșia verticală dintre dreptele \(x = 1\) și \(x = 2\). Condiția \(y \leq -3\) ne obligă să le luăm pe cele care au ordonata mai mică sau egală cu \(-3\). Prin urmare, intersecția este nevidă și nemărginită.

Semiplanele au intersecția nevidă, nemărginită.