Submeter | Todas submissőes | Melhores | Voltar |
B0120 - Batalha Naval |
Batalha Naval é um clássico jogo de estratégia para dois jogadores. Cada jogador posiciona seus navios num grid 10 × 10, e cada rodada do jogo consiste em adivinhar as posições dos navios do adversário. Existem muitas variações das regras, mas tais regras são irrelevantes para esse problema. Estamos interessados num problema mais básico: Dada a lista dos navios e suas posições, você deve determinar se o posicionamento inicial é válido.
As linhas e colunas do tabuleiro são numeradas de 1 a 10, e os navios são posicionados na horizontal ou na vertical, ocupando uma sequência contígua de quadrados do tabuleiro. Para esse problema, um posicionamento é válido se:
- nenhuma posição é ocupada por mais de um navio e;
- todos os navios estão inteiramente contidos no tabuleiro.
Entrada
A primeira linha da entrada contém um inteiro N (1 ≤ N ≤ 100), o número de navios. Cada uma das próximas N linhas contém quatro inteiros D, L, R e C com D ∈ {0, 1}, 1 ≤ L ≤ 5 e 1 ≤ R, C ≤ 10 descrevendo um navio. Se D = 0 então o navio está alinhado horizontalmente, e ocupa as posições (R, C). . .(R, C + L − 1). Do contrário, o navio está alinhado verticalmente, e ocupa as posições (R, C). . .(R + L − 1, C).
Saída
Imprima uma única linha contendo um único caractere. Se o posicionamento inicial dos navios for válido, então imprima o caractere maiúsculo ‘Y’; do contrário, imprima o caractere maiúsculo ‘N’.
Exemplo
Entrada: 3 0 5 1 1 1 5 2 2 0 1 3 3 Saída: Y
Entrada: 2 0 2 1 1 1 1 1 2 Saída: N
Entrada: 1 0 2 10 10 Saída: N
Entrada: 7 0 3 2 2 1 5 2 9 1 2 3 6 1 1 4 2 0 1 6 6 0 4 8 4 0 2 10 1 Saída: Y
Adicionado por: | IFTM_Maratona |
Data: | 2022-06-14 |
Tempo limite: | 1s |
Tamanho do fonte: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Linguagem permitida: | C NCSHARP C++ 4.3.2 JAVA JULIA PYTHON3 |
Origem: | Maratona SBC_Facil_Matriz |