Algorithm


Problem Name: 2 AD-HOC - beecrowd | 2321

Problem Link: https://www.beecrowd.com.br/judge/en/problems/view/2321

Detectando Colisões

 

Por OBI - Olimpíada Brasileira de Informática 2007 BR Brazil

Timelimit: 1

Detecção de colisão é uma das operações mais comuns (e importantes) em jogos eletrônicos. O objetivo, basicamente, é verificar se dois objetos quaisquer colidiram, ou seja, se a interseção entre eles é diferente de vazio. Isso pode ser usado para saber se duas naves colidiram, se um monstro bateu numa parede, se um personagem pegou um item, etc.

Para facilitar as coisas, muitas vezes os objetos são aproximados por figuras geométricas simples (esferas, paralelepípedos, triângulos etc). Neste problema, os objetos são aproximados por retângulos num plano 2D.

Escreva um programa que, dados dois retângulos, determine se eles se interceptam ou não.

 

Entrada

 

A entrada contém um único conjunto de testes, que deve ser lido do dispositivo de entrada padrão (normalmente o teclado). Cada caso de teste contém duas linhas. Cada linha contém quatro inteiros (x0, y0, x1, y1, sendo 0 ≤ x0 < x1 ≤ 1.000.000 e 0 ≤ y0 < y1 ≤ 1.000.000) separados por um espaço em branco representando um retângulo. Os lados do retângulo são sempre paralelos aos eixos x e y.

 

Saída

 

Seu programa deve imprimir, na saída padrão, uma única linha para cada caso de teste, contendo o número 0 (zero) caso não haja interseção ou o número 1 (um) caso haja.

 

 

 

Exemplos de Entrada Exemplos de Saída

0 0 1 1

0 0 1 1

1

 

Code Examples

#1 Code Example with C++ Programming

Code - C++ Programming


#include <algorithm>
#include <cstdio>
using namespace std;
int main() {
    int a, b, c, d, e, f, g, h;
    scanf("%d %d %d %d %d %d %d %d", &a, &b, &c, &d, &e, &f, &g, &h);
    int xmin = max(a, e);
    int xmax = min(c, g);
    if (xmin > xmax) {
        printf("0\n");
        return 0;
    }
    int ymin = max(b, f);
    int ymax = min(d, h);
    if (ymin > ymax) {
        printf("0\n");
        return 0;
    }
    printf("1\n");
    return 0;
}
Copy The Code & Try With Live Editor

Input

x
+
cmd
0 0 1 1
0 0 1 1

Output

x
+
cmd
1
Advertisements

Demonstration


Previous
#2319 Beecrowd Online Judge Solution 2319 Penalidade Mínima Solution in C, C++, Java, Js and Python
Next
#2322 Beecrowd Online Judge Solution 2322 Peça Perdida Solution in C, C++, Java, Js and Python