sábado, 30 de janeiro de 2016

814. Macaco-prego

Olá meus amigos nerds! Hoje vamos achar o melhor lugar para uma reserva ambiental de macacos prego, já que é isso que o problema 814. Macaco-prego pede para fazer. Mais especificamente, dadas as coordenadas de várias zonas retangulares de um mapa determinar a interseção de todas elas.

Solução


No caso geral esse problema seria bem difícil, mas como só temos retângulos com os lados paralelos aos eixos ele fica mais fácil. Só saber que os retângulos se interceptam também é muito fácil, mas não basta para resolvermos o problema! Precisamos ser capazes de calcular a interseção.

Sejam A e B os dois retângulos que queremos interceptar. Construa um retângulo que contenha A e B e que tenha como pontos extremos os pontos mais distantes de cada retângulo (ou seja, ordena as coordenadas de A e B e pegue o primeiro e último elementos do vetor). Os pontos restantes da ordenação formam um segundo retângulo C que está contido no super retângulo. Esses pontos formam a interseção de A e B, caso ela exista. Para saber se a interseção existe, veja se tanto A quanto B contém o centro de C.

Implementação



4 comentários:

  1. bom dia amigo gostaria muito de falar com vc e tira umas duvidas sobre as logicas de alguns programa que vc fez meu email é la3rci0@gmail.com ou whats 094 98174 5707

    ResponderExcluir
  2. Olá,teria a solução desse problema desenvolvido em python?

    ResponderExcluir
    Respostas
    1. Olá tudo jóia, a solução em python seria a mesma. Só substituir os scanf por input, os printf por print, os vectors por [] e push_back por append que vai funcionar em python.

      Excluir