Giter VIP home page Giter VIP logo

desafio-multiverso-grafos's Introduction

N|Solid

NOSSO DESAFIO RICK - GRAFOS

Na ficção científica, a viagem entre diferentes universos, é feita através de portais ou buracos de minhocas que conectam mundos diferentes ou até mesmo dimensões diferentes.

Imagine que você é um físico renomado que descobriu “buracos de minhocas” (rotas) que permitem o deslocamento entre universos. De acordo com sua descoberta, Todas as rotas são unidirecionais, ou seja, uma rota do universo A para o universo B não implica existência de uma rota do universo B para o universo A.

Mesmo quando existam rotas nos dois sentidos, elas são distintas e não possuem necessariamente a mesma distância (medidas em unidades de espaço-tempo).

O objetivo deste desafio é ajudar futuros viajantes a navegar entre os universos gastando a menor quantidade de espaço-tempo possível. Seu software deverá ser capaz de calcular o custo de deslocamento entre rotas, os números diferentes de rotas entre universos e as rotas mais econômicas.

Os universos e as rotas correspondem respectivamente aos vértices e arestas ponderadas do grafo abaixo:

N|Solid

Seu código deverá resolver os seguintes problemas:

  • A distância de A a C passando por B?
  • A distância entre A e D?
  • A distância de A a C passando por D?
  • O número de rotas saindo de C e voltando a C com no máximo 3 paradas?
  • O número de rotas entre A e C com no máximo 4 paradas?
  • A menor rota (em espaço-tempo) entre A e C?
  • A menor rota (em espaço-tempo) saindo de B e voltando a B?
  • O número de diferentes rotas saindo de C e voltando a C com distância máxima de 300 unidades de espaço-tempo?

A forma de entrada e saída dos dados fica a sua escolha.

REGRAS GERAIS

Pedimos que você leia atentamente as instruções abaixo e crie uma solução de código usando Java, JavaScript, Ruby, ou Pyhton.

  • Faça a cópia do repositório (fork), desenvolva e submeta uma solicitação de mudança (pull request) no branch master.
  • Em caso de dúvidas basta abrir uma issue com sua pergunta (aqui mesmo no github) que nossa equipe irá respondê-lo assim que possível.
  • Você não poderá usar bibliotecas externas ou ferramentas resolver o problema das rotas/grafo.
  • Não será permitido o uso de bancos de dados orientedos a grafos.
  • Avaliaremos uma variedade de aspectos, como design da solução, orientação a objeto, complexidade do código e a existência de testes unitários.
  • Esperamos que você encaminhe um código que acredite ter qualidade, que possa ser executado e evoluído.
  • Caso deseje evoluir a ideia seguindo essa base, fique à vontade: por exemplo, adaptar as entradas e saídas para ser um serviço web, criar uma interface gráfica, etc.

BUILD E EXECUÇÃO

  • Envie as instruções para execução do código
  • De preferência, utilize um ferramenta como gradle, maven, npm ou yarn para realizar as tarefas necessárias de build.

BOA SORTE!

desafio-multiverso-grafos's People

Contributors

solutisfsw avatar heitorgo1 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.