# VERSAO EM ATUALIZACAO! # Preâmbulo *EDAzinho* é uma jovem célula que busca as complexidades das coisas da vida. Para conseguir encontrar as complexidades nosso nobre guerreiro precisa dominar uma grande porção de terreno. A dominação pelos terrenos é tão interessante que EDAzinho pensou que poderia maximizar os custos dos terrenos conquistados. Você pode ver um [Manual feito em sala](./Notes_211004_091602.pdf). E também pode ver o vídeo abaixo: <center> <iframe width="350" height="187" src="https://www.youtube.com/embed/FxtlMbL-nFk" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> </center> # Objetivo O objetivo do jogo é conseguir o máximo de pontos dominando os territórios. ## Cálculo dos pontos - $A$ é o conjunto de áreas dominadas - $P_i$ pontuação de uma área dominada - $D_i$ Distância de Manhattan percorrida. - $T$ é o tempo em segundos da execução do seu programa - $M$ é a memória em MegaBytes utilizada pelo seu programa Logo a pontuação é dada por: $Pontos = \sum_{i=0}^{|A|}(P_i - D_i) - T*100 -M*10$ # MAPA O mapa deste jogo pode ser visto como uma matriz infinita $M$, ou seja, cresce indefinidamente em qualquer direção, o jogador começa em uma posição aleatória definida logo no início da partida. O mapa é uma incógnita para o jogador, e para isso precisa perguntar ao árbitro as pontuações das casas adjacentes. Seja $A$ o conjunto $\{(1,-1), (1,0), (1,1), (0,-1), (0, 1), (-1, -1), (-1,0), (-1,1)\}$, seja $P(x_0, y_0) \in M$ , podemos definir um ponto adjacente a $P$ como $P+e$ onde $e \in A$. A soma entre $P$ e $e$ pode ser definida como $(P_x+e_x, P_y+e_y)$. Em outras palavras, considera-se adjacentes as casas imediatamente ao lado, nos sentidos horizontal, vertical e diagonal. # Regras O jogo é baseado em um sistema de turnos, mesmo sendo *single player*, e um conjunto limitado de operações podem ser executados a cada turno. ## Início do jogo O início do jogo é marcado por uma única linha, que deve ser lida da entrada padrão, contendo $4$ números inteiros $L,C,P,T$ representando, respectivamente: - **L** - a linha que o jogador começa ( $-2^{63} \leq L \leq 2^{63}$ ) - **C** - a coluna que o jogador começa ( $-2^{63} \leq C \leq 2^{63}$ ) - **P** - a quantidade de pontos adquiras na posição inicial ( $-2^{63} \leq P \leq 2^{63}$ ) - **T** - o total de turnos para a partida ( $10 ≤ T ≤ 2^{31}$ ) ## Comandos possíveis Seja $n$ a quantidade de edeazinhos, então o jogador poderá efeturar $n$ operações. Não é permitido que um edeazinho faça mais de uma opereção por turno. É permitido que um edazinho não faça nenhuma operação. Além disso, a qualquer momento, o jogar pode encerar o turno com _fimturno_. Além de pontos, algumas células possuem mais Edazinhos que aumentam suas possíbilidades de ações. Todo comando começa com uma string 'andar', 'sondar', 'dominar' e 'fimturno' seguida de zero ou mais inteiros. - **dominar l c l' c' d** O comando dominar começa com uma sting 'dominar' seguido de cinco número números inteiros $-2^{63} \leq$ $l$, $c$, $l'$, $c'$, $\leq 2^{63}$, $1 \leq d \leq 2^{31}$ separados por um espaço em branco. Com a operação dominar podemos mover um Edazinho que está localizado na posição $(l,c)$ para a posição $(l',c')$ gastando $d$ pontos, onde $d$ é igual a distância de Manhattan entre $(l,c)$ e $(l',c')$. $(l,c)$ e $(l',c')$ não necessáriamente precisão ser adjacente. Porém, um EDAzinho só pode se mover para uma posição que já foi sondada anteriomente. Quando um edazinho domina uma posiçao, ele não só se move para aquela posição, como também ganha a pontuação e a quantidade de edazinhos referente a nova posição. Após uma dominição a pontução total sera incrementa em $t - d$. onde $t$ é a quantidade de pontos obitida em $(l', c')$. <!-- - Operação para mover um Edazinho que está localizado na célula **(L,C)** para a célula **(L',C')**. Essas células não precisam ser adjacentes mas você só pode efetuar esta operação em células sondadas em turnos anteriores. - Você deve informar um número **M**, a quantidade de energia o Edazinho gastará para alcançar essa nova posição. - A cada movimento o Edazinho gasta **M** pontos, sendo **M** a distância de Manhattan do ponto **(L,C)** para o ponto **(L',C')**. - Ao final do turno o Edazinho que estava na posição **(L,C)** estará na posição **(L',C')**. --> - **sondar l c l' c'** O comando sondar começa com uma string 'sondar' seguida por 4 inteiros $-2^{63} \leq$ $l$, $c$, $l'$, $c'$ $\leq 2^{63}$ separados por espaço em branco. Esta operação é utilizada para fazer com que o Edazinho que está localizado em $(l,c)$ sonde a região $(l',c')$. O jogador só pode efetuar sondagens de regiões adjacentes a EDAzinhos de turnos anteriores, ou seja, as novas regiões adjacentes de um edazinho recém dominado não contam. <!-- - **dominar L C M L' C'** - Operação para dominar uma célula **(L',C')**, você só pode efetuar esta operação em células sondadas em turnos anteriores - você deve selecionar um Eda **(L, C)** para dominar - você deve enviar a distância de manhattan **P** - Ao dominar uma célula que possuem Edazinhos perdidos, eles se juntaram a você aumentando a quantidade de ações por turno. --> - **fimturno** Operação que indica fim das operações de turno para o árbitro do jogo. ### Comandos inválidos Sempre que o seu programa executar uma operação ilegal/inválida, todos os Edazinhos serão mortos e seu programa será encerrado com 0 pontos. ## Respostas dos comandos Cada comando executado em um turno retornará as respostas na mesma ordem da sua saida: <!-- - **andar l c l' c'** é o retorno da operação **andar**, indicando a casa inicial $(l,c)$ e a casa final **(L', C')** do Edazinho --> - **sondagem $l' c' w$ $q$** é o retorno da operação **sondar**, indicando que a sondagem na posição $(l',c')$ possui $w$ pontos e $q$ Edazinhos. - **dominacao $w$ $q$** é o retorno da operação **dominar** indicando, respectivamente, quantos pontos e quantos Edazinhos foram obtidos da dominação. # <span class="todo TODO">TODO</span> Classificação e NOTA - escrevendo (consulte o PDF na primeira seção para mais informações por ora). # Premiação Teremos premiação??? # Autores - Bruno Ribas \<prof\> - Gabriel Costa \<monitor\> - Nicolas Queiroz \<monitor\> - Rodrigo Santos \<monitor\> - Thallison Alves \<monitor\>