· 2022/2
3
Algoritmos e Programação de Computadores
UNICAMP
3
Algoritmos e Programação de Computadores
UNICAMP
60
Algoritmos e Programação de Computadores
UNICAMP
4
Algoritmos e Programação de Computadores
UNICAMP
2
Algoritmos e Programação de Computadores
UNICAMP
3
Algoritmos e Programação de Computadores
UNICAMP
4
Algoritmos e Programação de Computadores
UNICAMP
5
Algoritmos e Programação de Computadores
UNICAMP
4
Algoritmos e Programação de Computadores
UNICAMP
3
Algoritmos e Programação de Computadores
UNICAMP
Texto de pré-visualização
06/11/2022 18:30 Laboratdrio 10 Cac¢ca ao Tesouro Vocé e alguns amigos vdo participar de um jogo de caga ao tesouro. Nesse jogo, dois times competem para encontrar o maior numero de tesouros escondidos em uma Sala. Com as suas habilidades de programagdo vocé decidiu implementar um programa para determinar a pontuagdo de cada time e consequentemente qual time foi o vencedor. O jogo funciona com as seguintes regras. Inicialmente, varios tesouros sdo espalhados por uma sala e os jogadores sdo separados em dois times, o time azul e o time vermelho. Em seguida, cada jogador entra na sala e procura por tesouros por um tempo predeterminado. Apenas um jogador por vez pode entrar na sala. Os jogadores dos times devem estar intercalados, ou seja, depois de um jogador do time vermelho deve entrar um jogador do time azul e depois de um jogador do time azul deve entrar um jogador do time vermelho. O primeiro time a entrar na sala é escolhido por sorteio. Apdés todos os jogadores terem tido a oportunidade de entrar na sala, os tesouros recolhidos pelos jogadores de cada time sao somados e vence o time que recolheu mais tesouros. No seu programa, a sala sera representada por uma matriz com uma marcagado na posicdao de cada tesouro e vocé recebera 0 caminho realizado por cada jogador. Vocé pode supor que sempre que um jogador passa por um tesouro esse tesouro sera recolhido, ou seja, sera computado na pontuagao do time desse jogador e nado podera mais ser encontrado pelos proximos jogadores. Como entrada 0 seu programa recebera inicialmente um inteiro n indicando o tamanho da matriz, seguido de n linhas representado a matriz. Cada linha contera n caracteres separados por espacos, se 0 caractere for * a posi¢do correspondente da matriz possui um tesouro. Caso contrario, 0 caractere sera . € a posi¢do nado possui um tesouro. Em seguida, 0 seu programa recebera uma linha com uma string indicando o time do primeiro jogador a entrar no labirinto ("“vermelho" ou "azul"), seguida por uma linha com um inteiro m indicando o numero de jogadores totais (soma dos jogadores dos dois times), seguida de m linhas com o caminho feito por cada jogador. A entrada da sala fica no canto superior esquerdo da matriz e o caminho é representado por uma sequéncia de caracteres. Os seguintes caracteres sdo usados para descrever 0 caminho: e N: representa uma movimentagado para o norte, ou seja para a linha acima da posi¢dao atual. e s:representa uma movimentagado para o sul, ou seja para a linha abaixo da posicgdo atual. https://susy.ic.unicamp.br:9999/mc102/10/enunciado.html 1/4 06/11/2022 18:30 Laboratdrio 10 e 0: representa uma movimentagdo para 0 oeste, ou seja para a colunaa esquerda da posi¢do atual. e L:representa uma movimentagdo para o leste, ou seja para a coluna a direita da posi¢do atual. Como saida o seu programa deve imprimir duas linhas com as mensagens Tesouros encontrados pelo time azul: X @ Tesouros encontrados pelo time vermelho: Y, onde x €a quantidade de tesouros encontrados pelo time azul e Y é a quantidade de tesouros encontrados pelo time vermelho. Em seguida vocé deve imprimir Vitoria do time azul , Caso a pontuagao final do time azul seja maior que adovermelho, Vitoria do time vermelho , CaSO a pontuacao final do time vermelho seja maior que a do azul, OU Empate , CaSO as pontuacoes finais sejam iguais. Exemplos de entradas e saidas esperadas pelo seu programa: Teste 01 Entrada 5 e. e. . * e. e. * . . e. e. e. . * e. e. * . . e. e. e. * . e. azul 2 LSSSSL LLLSSS Saida Tesouros encontrados pelo time azul: 3 Tesouros encontrados pelo time vermelho: 2 Vitoria do time azul No caso desse teste, 0 primeiro jogador (pertencente ao time azul) se moveu de acordo com o seguinte caminho, indicado com os caracteres >, v e +.Note que ele encontrou 3 tesouros. >v.*. Vee. .Vi*, https://susy.ic.unicamp.br:9999/mc102/10/enunciado.html 2/4 06/11/2022 18:30 Laboratório 10 https://susy.ic.unicamp.br:9999/mc102/10/enunciado.html 3/4 . V . . . . > + . . O segundo jogador (pertencente ao time vermelho), por sua vez, se moveu de acordo com o seguinte caminho. Note que ele encontrou 2 tesouros. Como cada time só tinha um jogador, o time azul foi o vencedor. > > > V . . . . V . . . . V . . . . + . . . . . . Teste 03 Entrada 6 . . * . * . . . . . . . . . * . * . . . . . . . * . * . * * . . . . . . azul 2 LLLLSSOONN SSSSLLLLL Saída Tesouros encontrados pelo time azul: 4 Tesouros encontrados pelo time vermelho: 4 Empate Teste 04 Entrada 6 . . . . . . * . * . . . . . . . . . . . * . * . * . . . . . 06/11/2022 18:30 Laboratdrio 10 vermelho 4 SSSSLLLL SSLLNNOO LLLLSSSS LLSSSSLL Saida Tesouros encontrados pelo time azul: 2 Tesouros encontrados pelo time vermelho: 3 Vitoria do time vermelho Codigo Base No arquivo auxiliar lab10.py vocé ira encontrar um cddigo base para dar inicio ao processo de elaboragdo deste laboratorio. Para facilitar a implementagdo do seu programa, o codigo base realiza a leitura da matriz. n = int(input()) matriz = [input().split() for _ in range(n)] Orientacgoes e Veja aqui a pagina de submissdo da tarefa. e O arquivo a ser submetido deve se chamar lab10.py. e No link "Arquivos auxiliares" ha um arquivo compactado (aux10.zip) que contém todos os arquivos de testes abertos (entradas e saidas esperadas). e Olaboratdrio é composto de 10 testes abertos e 10 testes fechados. e Olimite maximo sera de 20 submiss6es. e Acesse 0 sistema SuSy com seu RA (apenas numeros) e a senha que vocé utiliza para fazer acesso ao sistema da DAC. e Vocé deve seguir as instrugdes de submissdo descritas no enunciado. e Serdo considerados apenas os resultados da ultima submissdo. e Esta tarefa tem peso 3. e Oprazo final para submissdo é dia 13/11/2022 (domingo). https://susy.ic.unicamp.br:9999/mc102/10/enunciado.html 4/4
3
Algoritmos e Programação de Computadores
UNICAMP
3
Algoritmos e Programação de Computadores
UNICAMP
60
Algoritmos e Programação de Computadores
UNICAMP
4
Algoritmos e Programação de Computadores
UNICAMP
2
Algoritmos e Programação de Computadores
UNICAMP
3
Algoritmos e Programação de Computadores
UNICAMP
4
Algoritmos e Programação de Computadores
UNICAMP
5
Algoritmos e Programação de Computadores
UNICAMP
4
Algoritmos e Programação de Computadores
UNICAMP
3
Algoritmos e Programação de Computadores
UNICAMP
Texto de pré-visualização
06/11/2022 18:30 Laboratdrio 10 Cac¢ca ao Tesouro Vocé e alguns amigos vdo participar de um jogo de caga ao tesouro. Nesse jogo, dois times competem para encontrar o maior numero de tesouros escondidos em uma Sala. Com as suas habilidades de programagdo vocé decidiu implementar um programa para determinar a pontuagdo de cada time e consequentemente qual time foi o vencedor. O jogo funciona com as seguintes regras. Inicialmente, varios tesouros sdo espalhados por uma sala e os jogadores sdo separados em dois times, o time azul e o time vermelho. Em seguida, cada jogador entra na sala e procura por tesouros por um tempo predeterminado. Apenas um jogador por vez pode entrar na sala. Os jogadores dos times devem estar intercalados, ou seja, depois de um jogador do time vermelho deve entrar um jogador do time azul e depois de um jogador do time azul deve entrar um jogador do time vermelho. O primeiro time a entrar na sala é escolhido por sorteio. Apdés todos os jogadores terem tido a oportunidade de entrar na sala, os tesouros recolhidos pelos jogadores de cada time sao somados e vence o time que recolheu mais tesouros. No seu programa, a sala sera representada por uma matriz com uma marcagado na posicdao de cada tesouro e vocé recebera 0 caminho realizado por cada jogador. Vocé pode supor que sempre que um jogador passa por um tesouro esse tesouro sera recolhido, ou seja, sera computado na pontuagao do time desse jogador e nado podera mais ser encontrado pelos proximos jogadores. Como entrada 0 seu programa recebera inicialmente um inteiro n indicando o tamanho da matriz, seguido de n linhas representado a matriz. Cada linha contera n caracteres separados por espacos, se 0 caractere for * a posi¢do correspondente da matriz possui um tesouro. Caso contrario, 0 caractere sera . € a posi¢do nado possui um tesouro. Em seguida, 0 seu programa recebera uma linha com uma string indicando o time do primeiro jogador a entrar no labirinto ("“vermelho" ou "azul"), seguida por uma linha com um inteiro m indicando o numero de jogadores totais (soma dos jogadores dos dois times), seguida de m linhas com o caminho feito por cada jogador. A entrada da sala fica no canto superior esquerdo da matriz e o caminho é representado por uma sequéncia de caracteres. Os seguintes caracteres sdo usados para descrever 0 caminho: e N: representa uma movimentagado para o norte, ou seja para a linha acima da posi¢dao atual. e s:representa uma movimentagado para o sul, ou seja para a linha abaixo da posicgdo atual. https://susy.ic.unicamp.br:9999/mc102/10/enunciado.html 1/4 06/11/2022 18:30 Laboratdrio 10 e 0: representa uma movimentagdo para 0 oeste, ou seja para a colunaa esquerda da posi¢do atual. e L:representa uma movimentagdo para o leste, ou seja para a coluna a direita da posi¢do atual. Como saida o seu programa deve imprimir duas linhas com as mensagens Tesouros encontrados pelo time azul: X @ Tesouros encontrados pelo time vermelho: Y, onde x €a quantidade de tesouros encontrados pelo time azul e Y é a quantidade de tesouros encontrados pelo time vermelho. Em seguida vocé deve imprimir Vitoria do time azul , Caso a pontuagao final do time azul seja maior que adovermelho, Vitoria do time vermelho , CaSO a pontuacao final do time vermelho seja maior que a do azul, OU Empate , CaSO as pontuacoes finais sejam iguais. Exemplos de entradas e saidas esperadas pelo seu programa: Teste 01 Entrada 5 e. e. . * e. e. * . . e. e. e. . * e. e. * . . e. e. e. * . e. azul 2 LSSSSL LLLSSS Saida Tesouros encontrados pelo time azul: 3 Tesouros encontrados pelo time vermelho: 2 Vitoria do time azul No caso desse teste, 0 primeiro jogador (pertencente ao time azul) se moveu de acordo com o seguinte caminho, indicado com os caracteres >, v e +.Note que ele encontrou 3 tesouros. >v.*. Vee. .Vi*, https://susy.ic.unicamp.br:9999/mc102/10/enunciado.html 2/4 06/11/2022 18:30 Laboratório 10 https://susy.ic.unicamp.br:9999/mc102/10/enunciado.html 3/4 . V . . . . > + . . O segundo jogador (pertencente ao time vermelho), por sua vez, se moveu de acordo com o seguinte caminho. Note que ele encontrou 2 tesouros. Como cada time só tinha um jogador, o time azul foi o vencedor. > > > V . . . . V . . . . V . . . . + . . . . . . Teste 03 Entrada 6 . . * . * . . . . . . . . . * . * . . . . . . . * . * . * * . . . . . . azul 2 LLLLSSOONN SSSSLLLLL Saída Tesouros encontrados pelo time azul: 4 Tesouros encontrados pelo time vermelho: 4 Empate Teste 04 Entrada 6 . . . . . . * . * . . . . . . . . . . . * . * . * . . . . . 06/11/2022 18:30 Laboratdrio 10 vermelho 4 SSSSLLLL SSLLNNOO LLLLSSSS LLSSSSLL Saida Tesouros encontrados pelo time azul: 2 Tesouros encontrados pelo time vermelho: 3 Vitoria do time vermelho Codigo Base No arquivo auxiliar lab10.py vocé ira encontrar um cddigo base para dar inicio ao processo de elaboragdo deste laboratorio. Para facilitar a implementagdo do seu programa, o codigo base realiza a leitura da matriz. n = int(input()) matriz = [input().split() for _ in range(n)] Orientacgoes e Veja aqui a pagina de submissdo da tarefa. e O arquivo a ser submetido deve se chamar lab10.py. e No link "Arquivos auxiliares" ha um arquivo compactado (aux10.zip) que contém todos os arquivos de testes abertos (entradas e saidas esperadas). e Olaboratdrio é composto de 10 testes abertos e 10 testes fechados. e Olimite maximo sera de 20 submiss6es. e Acesse 0 sistema SuSy com seu RA (apenas numeros) e a senha que vocé utiliza para fazer acesso ao sistema da DAC. e Vocé deve seguir as instrugdes de submissdo descritas no enunciado. e Serdo considerados apenas os resultados da ultima submissdo. e Esta tarefa tem peso 3. e Oprazo final para submissdo é dia 13/11/2022 (domingo). https://susy.ic.unicamp.br:9999/mc102/10/enunciado.html 4/4