Regras de Funcionamento

Documentos relacionados
Caderno de Tarefas Nível 2. Regras de Funcionamento Nível 2

Seleção de Problemas:

Regras de Funcionamento Nível 2

PROBLEMA A: BUSCA NA INTERNET (Fonte: SPOJ-OBI)

PROBLEMA A: SINUCA. Cor: Roxo. Nomes dos Arquivos. Arquivo-fonte: sinuca.c, etc Arquivo de entrada: sinuca.in Arquivo de saída: sinuca.

II MARATONA DE PROGRAMAÇÃO IFSP SÃO CARLOS. Caderno de Tarefas. 25 de outubro de 2012

Warmup para a 5 a Seletiva da UFPR 8 de Agosto de 2014

INF 1620 Estruturas de Dados Semestre Segundo Trabalho: Jogo de Caça-Palavras

Problema A Bolhas e baldes Nome do arquivo fonte: bolhas.c, bolhas.cpp ou bolhas.java

PROBLEMA A TROCA DE CARTAS

Caderno de Problemas

OBI2015 Caderno de Tarefas

1ª LISTA DE EXERCÍCIOS

Backtracking. Pequenos Bispos

SME Introdução à Programação de Computadores Primeiro semestre de Trabalho: jogo Semáforo

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Sexta Aula Prática - 28 de abril de 2011

5ª Lista de Exercícios de Programação I

Sistemas de equações lineares

REGULAMENTO DO 4º CAMPEONATO MUNICPAL DE FUTEBOL AMADOR DE IBIRAÇU 1ª Divisão

Ministério de Juniores e Adolescentes. JUNAD nos JOGOS

Manual do Kiriki. Albert Astals Cid Eugene Trounev Tradução: Luiz Fernando Ranghetti

4. No caso em que seja necessário apontar um vencedor e no tempo regulamentar o jogo terminar empatado será aplicado o seguinte:

Encriptação de Mensagens

II TORNEIO DE PROGRAMAÇÃO

1.1. O jogo Neste jogo parte-se de um tabuleiro com um número ímpar de discos (no caso da figura abaixo são 9), dispostos em linha,

22 a 25 de OUTUBRO REGULAMENTO PRAÇA DO PAPA VITÓRIA - ES

Maratona de Programação da SBC 2015

Combinatória e Probabilidade

Exercícios: Vetores e Matrizes

PROJETO REDE JOGOS NA EDUCAÇÂO MATEMÁTICA. JOGO DOS POLíGONOS HISTÓRICO E DESCRIÇÃO

Edital de Submissão de Trabalhos Científicos para o I Congresso de Enfermagem UniRV

CAMPEONATO DE TREBUCHET 2016/02

Olimpíada Brasileira de Robótica

PROGRAMAÇÃO DE COMPUTADORES I BCC Aula Prática 15

REGULAMENTO TÉCNICO TÊNIS DE MESA

REGULAMENTO TÉCNICO FUTEBOL DE CAMPO

Viva Laduma! 2 Continuando... September 16, 2009

Noções sobre Probabilidade

CONTEÚDOS DO PRIMEIRO PERÍODO EXERCÍCIOS DE RECUPERAÇÃO DO PRIMEIRO PERÍODO

Algoritmos e Estruturas de Dados II. Trabalho Prático 4

CEFET/RJ Disciplina: Inteligência Artificial Professor: Eduardo Bezerra Lista de exercícios 02

Copa do mundo. Problema: A

DESAFIO CARRINHO DE ROLIMÃ /02

Olimpíada Brasileira de Informática OBI2008 Programação Nível Júnior Fase 2 1. Auto Estrada. Nome do arquivo fonte: auto.c, auto.cpp ou auto.

CAPÍTULO I DA ORGANIZAÇÃO

VI JOGOS DOS APOSENTADOS FENACEF 2015

Resoluções. Aula 1 NÍVEL 2. Classe

DURAÇÃO DA PROVA: 2 horas

CAPÍTULO I DA ORGANIZAÇÃO

OBJETIVOS ESPECÍFICOS

XX OLIMPÍADA DE MATEMÁTICA DO ESTADO DO RIO GRANDE DO NORTE - Em 19/09/2009

INF 1007 Programação II Semestre 09.2

Art.2º- As inscrições deverão ser feitas somente para duplas, sendo aceito a inscrição de um reserva também.

TecnoFacens ª Corrida de Drones

MARATONA DE PROGRAMAÇÃO INTERNA UERJ 28/11/2009. Este caderno contém 9 páginas com a descrição de 8 problemas definidos a seguir:

Apostila 1 - Excel Recursos das planilhas eletrônicas para elaboração de conteúdos digitais para o ensino da matemática no ensino médio

Maratona de Programação da SBC 2014

REGULAMENTO OFICIAL COPA ARCO DE FUTEBOL SOCIETY ano 2016 (POR REGIÃO)

Regulamento da. Copa DUSDEUSES UniBH de. Futsal

Neste jogo, cada jogador assume o papel de um turista que visita Portugal, procurando sempre as melhores fotos de cada região.

Regulamento DA 2º COPA SINDGEL 2016 FUTEBOL DE 7

Trabalho de LP 15/07/2013. Prof. Flávio Miguel Varejão

JOGOS LIVRO REGRAS M AT E M Á T I CO S. 11.º Campeonato Nacional

MiniMaratonas de Programação

Centro Universitário UNIVATES Pró-Reitoria de Pesquisa, Extensão e Pós-Graduação PROPEX Centro de Ciências Exatas e Tecnológicas Apoio: CNPq

MAC2166 Introdução à Computação

UNIVERSIDADE FEDERAL DO PARANÁ Nível 1 - POTI Aula 1 - Combinatória

COMO JOGAR TRUCO PAULISTA

REGULAMENTO CIRCUITO VERÃO 2015 TRUCO CAPITULO I DAS CONDIÇÕES BÁSICAS E DA ORGANIZAÇÃO

Campeonato de Gamão. 1. Regras. 2. Servidor

- TORNEIO INTERNO DE BURACO IATE

Introdução à Inteligência Artificial MAC MAC 415. Exercício Programa 1 Busca

Escola: ( ) Atividade ( ) Avaliação Aluno(a): Número: Ano: Professor(a): Data: Nota:

OBI2012 Caderno de Tarefas

Teorema de Pitágoras: Encaixando e aprendendo

Planejamento Acadêmico - Grupo 1 - PIC 2012 Encontro 2 - Módulo 1 - Aritmética

Seletiva Interna da UFMA 2010 Departamento de Informática 16 de Julho de 2010

a) Defina em Prolog iguais/1, um predicado que recebe um estado do jogo e que verifica que todas as pilhas têm o mesmo número de peças.

REGULAMENTO CIRCUITO VERÃO 2015 SINUCA CAPITULO I DAS CONDIÇÕES BÁSICAS E DA ORGANIZAÇÃO

Semáforo. Um tabuleiro retangular 4 por 3. 8 peças verdes, 8 amarelas e 8 vermelhas partilhadas pelos jogadores.

A Copa das Federações será realizada nas seguintes categorias: -Profissional - Amador: A B C - Até 14 anos anos

(Sistema Especialista)

Prova da segunda fase - Nível 3

Transcrição:

1 Regras de Funcionamento 1. As questões serão anunciadas no início da Olimpíada, às 13hmin. Os participantes terão 3 horas para apresentar soluções, na forma de implementação desenvolvida em qualquer dos compiladores previstos: C++ DEV-C++, C DEV-C++, C++ Visual C++, JAVA, GCC e G++. 2. A prova deverá ser resolvida individualmente. 3. Os trabalhos serão avaliados automaticamente pelo sistema BOCA. 4. Quando um participante julgar que tem um programa que resolve um problema, deverá submetê-lo à correção do juiz eletrônico, que compilará e executará o mesmo para uma bateria de testes desconhecida dos participantes. Um problema será considerado resolvido se, para todos os testes da bateria, devolver o resultado esperado pelo juiz. Para cada submissão o participante receberá uma resposta, que poderá ser satisfatória (e o problema está resolvido) ou indicará algum erro: resposta errada, tempo de execução excedido, erro de execução, erro de compilação, etc. 5. Será considerado vencedor aquele que resolver a maior quantidade de problemas nas 3 horas de competição. Empates no número de problemas resolvidos serão classificados pelo tempo corrigido. Ganhará aquele que tiver o menor tempo corrigido. O tempo corrigido será dado pela soma dos tempos corrigidos somente dos problemas corretamente resolvidos pelo participante. O tempo corrigido de um problema será dado pelo número de minutos decorridos desde o início da competição até o momento da submissão correta somado a uma penalidade de 2 minutos por submissão incorreta feita anteriormente neste problema. Em caso de empate, será considerado vencedor o participante que tiver a primeira submissão correta. Persistindo o empate, a organização fará um sorteio entre os participantes envolvidos. 6. A organização da competição será responsável pela decisão de qualquer caso não previsto. 7. Material permitido para consulta: qualquer material impresso (livros, apostilas, códigos impressos, etc.), e a ajuda (help) do sistema. 8. Não será permitido o uso da internet nem de qualquer dispositivo de armazenamento eletrônico de dados (disquetes, pendrives, etc.). 9. Os participantes inscritos permitirão o uso e divulgação dos programas submetidos pela organização da competição. 1. Para fins de validação de AC (Atividades Complementares), o participante deverá submeter pelo menos uma solução correta.

2 A - Bakugan Arquivo fonte: bakugan.c, bakugan.cpp ou bakugan.java Marcos e Leandro adoram jogar Bakugan. Bakugan é um jogo com pequenas bolas de plástico que contém um pequeno monstro de brinquedo dentro. Quando jogada ao chão, uma bola Bakugan se abre com um som incrível liberando um terrível monstro. Cada um ganhou uma bolsa com as bolas Bakugan. Eles inventaram um jogo atribuindo a cada monstro um número de 1 à 1, de acordo com a aparência assustadora de cada um. O jogo é composto de R rodadas. A cada rodada: Ambos jogam simultaneamente uma bola; Cada um acumula um número de pontos de acordo com o número associado ao monstro liberado por sua bola; O primeiro (apenas o primeiro) que liberar o mesmo monstro em 3 rodadas consecutivas ganha 3 pontos adicionais; Se esta condição acontecer na mesma rodada para ambos os jogadores, então ninguém ganhará o bônus. O vencedor do jogo ó jogador que acumular mais pontos. Sua tarefa é escrever um programa responsável por anunciar o vencedor de cada partida. A entrada é composta de vários casos de teste. Cada caso de teste possui três linhas. A primeira linha contém um inteiro R representando o número de rodadas do jogo ( 1 <= R <= 1 ). A segunda contém R inteiros M i indicando o monstro liberado por Marcos a cada rodada ( 1 <= M i <= 1 para 1 <= i <= R). A terceira e última linha contém R inteiros L i indicando o monstro liberado por Leandro a cada rodada ( 1 <= L i <= 1 para 1 <= i <= R). O último caso de teste é seguido por uma linha contendo um zero. Para cada caso de teste seu programa deve imprimir uma única linha com um caractere representando o resultado do jogo: M (maiúsculo) se o vencedor for Marcos, L (maiúsculo) se o vencedor for Leandro, ou T (maiúsculo) em caso de empate. 1 4 2 2 2 5 6 7 8 1 1 1 4 4 4 1 1 1 1 2 3 5 3 3 3 3 2 8 9 9 9 9 1 8 4 7 1 1 9 5 2 4 3 5 6 9 7 9 4 2 3 7 4 esperada: M T L

3 B - Granizo Arquivo fonte: granizo.c, granizo.cpp ou granizo.java Considere a sequência formada começando de um inteiro positivo H e iterando com n = 1,2,... a seguinte definição até H n = 1: Por exemplo, se começarmos com H = 5, a seguinte sequencia é gerada: 5, 16, 8, 4, 2, 1. Se começarmos com H = 11, a sequencia gerada é 11, 34, 17, 52, 26, 13, 4, 2, 1, 5, 16, 8, 4, 2, 1. Como você pode notar destes exemplos, os números aumentam e diminuem, mas eventualmente caem para 1 (pelo menos para todos os número já testados). Estas sequencias são conhecidas como Hailstone (granizo em inglês) pois são similares à formação de granizo, que são elevados várias vezes antes de chegar ao chão. Neste problema, dado um inteiro positivo, sua tarefa é computar o maior número na sequencia Hailston que começa com o número dado. A entrada é composta por vários casos de testes. Cada caso de teste contém uma única linha com um inteiro H representando o valor inicial para construir a sequencia (1 <= H <= 5). O último caso de teste é seguido por uma linha contendo um zero. Para cada caso de teste seu programa deve imprimir uma linha com um inteiro representando o maior número da sequencia Hailstone que começa com o valor inicial fornecido. 5 11 27 para o exemplo de entrada: 16 52 9232

4 C - Robô colecionador Arquivo fonte: robo.c, robo.cpp ou robo.java Um dos esportes favoritos na Robolândia é o Rali dos Robôs. Este rali é praticado em uma arena retangular gigante de N linhas por M colunas de células quadradas. Algumas das células estão vazias, algumas contêm figurinhas da Copa (muito apreciadas pelas inteligências artificiais da Robolândia) e algumas são ocupadas por pilastras que sustentam o teto da arena. Em seu percurso os robôs podem ocupar qualquer célula da arena, exceto as que contêm pilastras, que bloqueiam o seu movimento. O percurso do robô na arena durante o rali é determinado por uma sequência de instruções. Cada instrução é representada por um dos seguintes caracteres: D, E e F, significando, respectivamente, gire 9 graus para a direita, gire 9 graus para a esquerda e ande uma célula para frente. O robô começa o rali em uma posição inicial na arena e segue fielmente a sequência de instruções dada (afinal, eles são robôs!). Sempre que o robô ocupa uma célula que contém uma figurinha da Copa ele a coleta. As figurinhas da Copa não são repostas, ou seja, cada figurinha pode ser coletada uma única vez. Quando um robô tenta andar para uma célula onde existe uma pilastra ele patina, permanecendo na célula onde estava, com a mesma orientação. O mesmo também acontece quando um robô tenta sair da arena. Dados o mapa da arena, descrevendo a posição de pilastras e figurinhas, e a sequência de instruções de um robô, você deve escrever um programa para determinar o número de figurinhas coletadas pelo robô. A entrada contém vários casos de teste. A primeira linha de um caso de teste contém três números inteiros N, M e S (1 N, M 1, 1 S 5 1 4 ), separados por espaços em branco, indicando respectivamente o número de linhas e o número de colunas da arena e o número de instruções para o robô. Cada uma das N linhas seguintes da entrada descreve uma linha de células da arena e contém uma cadeia com M caracteres. A primeira linha que aparece na descrição da arena é a que está mais ao Norte; a primeira coluna que aparece na descrição de uma linha de células da arena é a que está mais a Oeste. Cada célula da arena pode conter um dos seguintes caracteres:. célula normal; * célula que contém uma figurinha da Copa; # célula que contém uma pilastra; N, S, L, O célula onde o robô inicia o percurso (única na arena). A letra representa a orientação inicial do robô (Norte, Sul, Leste e Oeste, respectivamente). A ultima linha da entrada contém uma sequência de S caracteres dentre D, E e F, representando as instruções do robô. O último caso de teste é seguido por uma linha que contém apenas três números zero separados por um espaço em branco. Para cada rali descrito na entrada seu programa deve imprimir uma única linha contendo um único inteiro, indicando o número de figurinhas que o robô colecionou durante o rali.

5 3 3 2 *** *N* *** DE 4 4 5...# *#O. *.*. *.#. FFEFF 1 1 2...*......*.....*.....*.#......#N.*..*...*............... FDFFFFFFEEFFFFFFEFDF para o exemplo de entrada: 1 3

6 D - Aviões de papel Arquivo fonte: papel.c, papel.cpp ou papel.java Para descontrair os alunos após as provas da Olimpíada, a Diretora da escola organizou um campeonato de aviões de papel. Cada aluno participante receberá certa quantidade de folhas de um papel especial para fazer os seus modelos de aviões. A quantidade de folhas que cada aluno deverá receber ainda não foi determinada: ela será decidida pelos juízes do campeonato. A diretora convidou, para atuarem como juízes, engenheiros da Embraer, uma das mais bem sucedidas empresas brasileira, que vende aviões com tecnologia brasileira no mundo todo. O campeonato está programado para começar logo após a prova da Olimpíada, mas os juízes ainda não chegaram à escola. A diretora está aflita, pois comprou uma boa quantidade de folhas de papel especial, mas não sabe se a quantidade comprada vai ser suficiente. Considere, por exemplo, que a Diretora comprou 1 folhas de papel especial, e que há 33 competidores. Se os juízes decidirem que cada competidor tem direito a três folhas de papel, a quantidade comprada pela diretora é suficiente. Mas se os juízes decidirem que cada competidor tem direito a quatro folhas, a quantidade comprada pela diretora não seria suficiente. Você deve escrever um programa que, dados o número de competidores, o número de folhas de papel especial compradas pela Diretora e o número de folhas que cada competidor deve receber, determine se o número de folhas comprado pela Diretora é suficiente. A entrada é composta por vários casos de testes. Cada caso de teste contém uma única linha com três números inteiros C (1 <= C <= 1), P (1 <= P <= 1) e F(1 <= F <= 1) representando respectivamente o número de competidores, a quantidade de folhas de papel especial compradas pela Diretora e a quantidade de folhas de papel especial que cada competidor deve receber. O último caso de teste é seguido por uma linha contendo três zeros. Para cada caso de teste seu programa deve imprimir uma linha com o caractere S se a quantidade de folhas compradas pela Diretora é suficiente, ou o caractere N caso contrário. Note que os caracteres devem ser letras maiúsculas. 1 1 1 1 9 1 5 4 2 para o exemplo de entrada: S N S

7 E - Telefone Arquivo fonte: telefone.c, telefone.cpp ou telefone.java As primeiras redes públicas de telefonia foram construídas pela AT&T no começo do século XX. Elas permitiam que seus assinantes conversassem com a ajuda de uma telefonista, que conectava as linhas dos assinantes com um cabo especial. Essas redes evoluíram muito desde então, com a ajuda de vários avanços tecnológicos. Hoje em dia, essas redes atendem centenas de milhões de assinantes; ao invés de falar diretamente com uma telefonista, você pode simplesmente discar o número da pessoa desejada no telefone. Cada assinante recebe um número de telefone por exemplo, 55 98 234 5678. Qualquer pessoa que discar esse número consegue então falar com a pessoa do outro lado da linha. Os hifens no número de telefone são só para facilitar a leitura, e não são discados no telefone. Para que fique mais fácil de lembrar um número de telefone, muitas companhias divulgam números que contém letras no lugar de dígitos. Para convertê-los de volta para dígitos, a maioria dos telefones tem letras nas suas teclas: Ao invés de discar uma letra, disca-se a tecla que contém aquela letra. Por exemplo, se você quiser discar o número 8 FALE SBC, você na realidade discaria 8 3253 722. A sua avó tem reclamado de problemas de vista em particular, ela não consegue mais enxergar as letrinhas nas teclas do telefone, e por isso queria que você fizesse um programa que convertesse as letras em um número de telefone para dígitos. A entrada é composta por vários casos de testes. Cada caso de teste contém uma única linha com o número de telefone que deve ser traduzido. O número de telefone contém entre 1 e 15 caracteres, que podem ser dígitos e a 9, letras de A a Z e hifens ( - ). O último caso de teste é seguido por uma linha contendo um zero. Para cada caso de teste seu programa deve imprimir uma linha contendo o número de telefone com as letras convertidas para dígitos. Hifens no número telefone devem ser mantidos no número de telefone de saída. 55-98-234-5678 8-FALE-SBC M1S-TU-R4 para o exemplo de entrada: 55-98-234-5678 8-3253-722 617-88-74

8 F - Insensibilidade Arquivo fonte: insens.c, insens.cpp ou insens.java O planeta Bizz fica a 133 upals de distância do planeta Terra (onde upals é uma unidade de medida dada por um monte de anos-luz ), e parece ser o único planeta com vida além do nosso. Este planeta é muito interessante, pois, em cada país, seus habitantes têm uma característica diferente. Um desses países é a Cegônia, que tem como característica o fato de que todos os seus habitantes são cegos. Em compensação, todos possuem um sexto sentido acentuado, podendo perceber o que está à sua volta mesmo sem enxergar. Este ano, o governo da Cegônia fará um censo, e dentre os dados de seus habitantes, quer saber o quanto de insensibilidade cada pessoa possui. A insensibilidade indica quão ruim é a capacidade das pessoas de perceber os objetos à sua volta sem precisar enxergar. Tal teste é feito da seguinte maneira: a pessoa é colocada em uma sala onde se encontram vários objetos em posições pré-determinadas. A pessoa deve, então, dizer quais são as coordenadas de cada objeto dentro da sala. Para cada objeto, calcula-se o quadrado da distância entre a posição adivinhada pela pessoa e a posição real do objeto; esse valor é chamado de D. O nível de insensibilidade da pessoa é dado pela soma de todos os D. Por exemplo, suponha que na sala existam 4 objetos, nas coordenadas (1, 1), (3, 4), (5, 7) e (1, 1). Se a pessoa então disser que os objetos estão, respectivamente, nas posições (1, 2), (5, 4), (5, 7) e (19, 1), o valor de D para cada objeto será 1, 4, e 81 e portanto o nível de insensibilidade da pessoa é 1 + 4 + + 81 = 86. Você precisa fazer um programa que, dadas as coordenadas verdadeiras dos objetos e as coordenadas indicadas por uma pessoa, diga qual é o nível de insensibilidade dessa pessoa. A entrada é composta por vários casos de testes. A primeira linha de cada caso contém um único inteiro N (1 <= N <= 1.), indicando quantos objetos estão no quarto. As N linhas seguintes contêm cada uma quatro inteiros X1, Y1, X2, Y2 ( <= Xi <= 1). Cada linha representa um objeto: a posição real do objeto é (X1, Y1), e a posição onde a pessoa disse estar tal objeto é (X2, Y2). O último caso de teste é seguido por uma linha contendo um zero. Para cada caso de teste seu programa deve imprimir uma linha contendo um único inteiro, indicando o nível de insensibilidade da pessoa estudada. 4 1 1 1 2 3 4 5 4 5 7 5 7 1 1 19 1 5 1 3 1 3 4 1 11 1 2 2 3 3 1 1 para o exemplo de entrada: 86 51

9