O que é O objetivo desta modalidade é descobrir talentos potenciais para a programação de computadores. Por isso, deve ficar bem claro que não é necessário conhecimento prévio de programação de computadores – a prova é realizada com papel e lápis. Raciocínio lógico é mais importante do que experiência na utilização de computadores. Veja exemplos de tarefas que são utilizadas nas provas. Os melhores classificados de cada uma das categorias, serão convidados para participar de um Curso de Programação, no Instituto de Computação da UNICAMP. Exemplos de Tarefas A prova da Modalidade Iniciação Nível 2 conterá basicamente dois tipos de tarefas: tarefas de lógica e tarefas de computação. Alguns exemplos desses tipos de questões são: Provas de OBIs passadas OBI2003 (gabarito comentado) OBI2004 OBI2005 Tarefas de Lógica Natação Tarefas de Computação Temperatura Lunar (fácil) Rede ótica (difícil) Depois da Festa (média) Carga Pesada (média) Desordens (médio) Cubos (difícil) Natação Na última Olimpíada Interna da escola, exatamente sete alunos - Pedro, José, Ricardo, Sandro, Tiago, Hugo, e Valdir - participaram de todas as provas de natação.Todos os alunos terminaram todas as provas, e não houve empates nas provas. Em todas as provas Valdir terminou na frente de Pedro, e o Pedro sempre terminou na frente de José. Em todas as provas, ou Ricardo terminou em primeiro e Tiago terminou em último, ou Sandro terminou em primeiro e Hugo ou José terminou em último. 1. (10 pontos) Se, em uma prova, Ricardo terminou em primeiro, Valdir não pode ter terminado esta prova numa posição abaixo de: (a) segundo (b) terceiro (c) quarto (d) quinto (e) sexto 2. (10 pontos) Se, em uma prova, Sandro terminou em segundo, qual das afirmativas pode ser verdadeira em relação a esta prova? (a) Pedro terminou antes de Ricardo. (b) Valdir terminou antes de Sandro. (c) Pedro terminou antes de Valdir. (d) Tiago terminou antes de José. (e) Hugo terminou antes de Valdir. 3. (10 pontos) Se, em uma prova, Ricardo terminou em segundo e José terminou em quinto, qual das alternativas abaixo tem que ser verdadeira em relação a esta prova? (10 pontos) (a) Sandro terminou em terceiro. (b) Pedro terminou em terceiro. (c) Valdir terminou em quarto. (d) Tiago terminou em sexto. (e) Hugo terminou em sexto. Temperatura Lunar Sem as proteções da atmosfera e do cinturão magnético que existem na Terra, a Lua fica exposta ao ataque do Sol, que é um astro em constante explosão atômica. As explosões do Sol emitem ondas letais de partículas. Uma pessoa que ficasse desprotegida na superfície da Lua, num lugar onde o Sol incidisse diretamente, sofreria um bombardeio radioativo tão intenso quanto se estivesse nas imediações da usina russa de Chernobyl no momento do que matou 31 pessoas, em 1986. Além da radiação solar, outro efeito desta falta de proteção contra o Sol que existe na Lua é a enorme variação de temperatura. Nas regiões próximas do equador lunar, a variação de temperatura é brutal, passando de cerca de 130 graus positivos durante o dia a 129 graus negativos à noite. Para estudar com mais precisão as variações de temperatura na superfície da Lua, a NASA enviou à Lua uma sonda com um sensor que mede a temperatura de 1 em 1 minuto. Um dado importante que os pesquisadores desejam descobrir é como se comporta a média da temperatura, considerada em intervalos de uma dada duração (uma hora, meia hora, oito horas, etc.). Por exemplo, para a seqüência de medições 8, 20, 30, 50, 40, 20, -10, e intervalos de quatro minutos, as médias são respectivamente 108/4=27, 140/4=35, 140/4=35 e 100/4=25. 1. Tarefa Você foi recentemente contratado pela NASA, e sua primeira tarefa é, a partir de algumas seqüências de temperaturas medidas pelo sensor e do tamanho do intervalo, informar qual a maior e qual a menor temperatura média observadas, considerando o tamanho do intervalo dado. 2. Dados Você deverá resolver vários testes, cada um dado no seguinte formato e separados por uma linha em branco. A primeira linha de um teste contém dois números inteiros positivos N e M, que indicam respectivamente o número total de medições de temperatura de uma seqüência obtida pelo sensor, e o tamanho dos intervalos, em minutos, em que as médias devem ser calculadas. As N linhas seguintes contêm um número inteiro cada, representando a seqüência de medidas do sensor. Exemplo de Dados 4 2 -5 -12 0 6 7 4 35 -35 5 100 100 50 50 3. Resposta Para cada teste dado, você deve escrever duas linhas na resposta. A primeira linha identifica o conjunto de teste, no formato Teste n , onde n é numerado a partir de 1. A segunda linha deve conter dois números inteiros X e Y, representando respectivamente os valores da menor e da maior média de temperatura. O valor da média deve ser truncado, se a média não for um número inteiro (ou seja, deve ser impressa apenas a parte inteira). Exemplo de Resposta Teste 1: -8 3 Teste 2: 26 75 (estas respostas correspondem aos dados do exemplo acima) 5. Conjuntos de Testes Clique aqui para acessar os conjuntos de dados a serem utilizados. 6. Gabarito Clique aqui para acessar o gabarito utilizado na correção. Rede Ótica Os caciques da região de Tutuaçu pretendem integrar suas tribos à chamada "aldeia global". A primeira providência foi a distribuição de telefones celulares a todos os pajés. Agora, planejam montar uma rede de fibra ótica interligando todas as tabas. Esta empreitada requer que sejam abertas novas picadas na mata, passando por reservas de flora e fauna. Conscientes da necessidade de preservar o máximo possível o meio ambiente, os caciques encomendaram um estudo do impacto ambiental do projeto. Será que você consegue ajudá-los a projetar a rede de fibra ótica? 1. Tarefa Vamos denominar uma ligação de fibra ótica entre duas tabas de um ramo de rede. Para possibilitar a comunicação entre todas as tabas é necessário que todas elas estejam interligadas, direta (utilizando um ramo de rede) ou indiretamente (utilizando mais de um ramo). Os caciques conseguiram a informação do impacto ambiental que causará a construção dos ramos. Alguns ramos, no entanto, nem foram considerados no estudo ambiental, pois sua construção é impossível. Sua tarefa é determinar quais ramos devem ser construídos, de forma a possibilitar a comunicação entre todas as tabas, causando o menor impacto ambiental possível. 2. Dados Você deverá resolver vários testes, cada um dado no seguinte formato. A primeira linha de um teste contém dois números inteiros positivos N e M que indicam, respectivamente, o número de tabas e o número de ramos de redes possíveis. As tabas são numeradas de 1 a N. As M linhas seguintes contêm três inteiros positivos X, Y e Z, que indicam que o ramo de rede que liga a taba X à taba Y tem impacto ambiental Z. Com os conjuntos de teste dados sempre é possível interligar todas as tabas. Exemplo de Dados 3 1 2 3 3 2 10 3 10 1 10 5 1 1 2 2 6 2 3 4 5 15 12 13 5 3 2 6 3 4 6 3. Resposta Para cada teste dado, você deve produzir uma lista dos ramos de redes que devem ser construídos. A lista deve ser precedida de uma linha que identifica o conjunto de teste, no formato "Teste n", onde n é numerado a partir de 1. A lista é composta por uma sequência de ramos a serem construídos, um ramo por linha. Um ramo é descrito por um par de tabas X e Y , com X < Y. Os ramos de rede podem ser listados em qualquer ordem, mas não deve haver repetição. Se houver mais de uma solução possível, dê apenas uma delas. Exemplo de Resposta Teste 1: 1 2 1 3 Teste 2: 1 3 2 3 2 5 3 4 (estas respostas correspondem aos dados do exemplo acima) Conjuntos de Dados Clique aqui para acessar o conjunto de dados a ser utilizado. Gabarito Clique aqui para acessar o gabarito utilizado na correção. Depois da Festa Tradução da quinta tarefa da primeira fase do Concurso Nacional de Informática da Alemanha 1997/98 ("Bundeswettbewerb Informatik 1997/98 1. Runde"). A festa de Karina foi um grande sucesso. Apenas um detalhe perturba sua alegria. Seu venerado Roberto havia recusado o convite com a observação que não se dispunha a perder seu tempo com um evento tão monótono. Entende-se que isto encerra o relacionamento entre eles, mas Karina ainda espera que Roberto ouça de diversas pessoas o quanto legal fora sua festa com o objetivo de deixá-lo zangado. O número de comentários que chegarão a Roberto pode ser determinado sabendose os convidados, seus conhecidos e quais destas pessoas conhecem Roberto. Karina supõe corretamente que quem ouvir uma novidade da festa, conta a mesma para seus amigos. Por outro lado, ninguém a contará a notícia mais de uma vez para um mesmo conhecido, mesmo quando diversas pessoas tenham lhe falado da festa. Naturalmente, todos os convidados já se conhecem e Karina nunca conversará uma única palavra com Roberto a respeito de sua comemoração, do mesmo modo que não perderá seu tempo falando da festa a pessoas não convidadas. Exemplo: Estavam presentes na festa: Frederico, Sílvia e Vera. Frederico conhece Roberto e Romeu. Sílvia conhece Romeu e Antônio. Vera conhece Roberto e Antônio. Roberto conhece Romeu e Ângela. Ângela conhece Carol. Carol conhece Roberto. Antônio conhece Romeu e Roberto. (Se Roberto conhece Daniel, Daniel também conhece Roberto, mesmo que isto não seja dito explicitamente). Neste caso, os comentários chegam quatro vezes a Roberto: de Frederico, Antônio, Romeu e Vera. 1. Tarefa: Seu objetivo é determinar quantas vezes Roberto ouvirá da festa. Para isso, você receberá a lista dos convidados e também listas com a especificação do círculo de amigos das pessoas. 2. Dados Você receberá vários conjuntos de testes. Cada um destes conjuntos consiste de várias linhas de texto. A primeira linha contém uma lista dos nomes dos convidados presentes na festa. Cada convidado é identificado por apenas uma palavra. Os nomes são separados por exatamente um espaço em branco. As próximas linhas contém listas dos conhecidos de uma pessoa no seguinte formato: X: a b c ... Significando que X conhece a, b, c, etc e vice-versa. Cada conjunto de teste é finalizado por uma linha em branco. Exemplo de Dados Frederico Silvia Vera Frederico: Roberto Romeu Silvia: Romeu Antanio Vera: Roberto Antanio Roberto: Romeu Angela Angela: Carol Carol: Roberto Antonio: Romeu Roberto Laura Paulo Licia: Roberto Maria: Rafael Mariana Roberto Paulo: Renata Diogo Laura: Adelino Eduardo Roberto: Ana Andre 3. Resultados Para cada conjunto de teste, você deve escrever duas linhas na resposta. A primeira linha deve conter um identificador do teste, a segunda o número de vezes que Roberto soube do sucesso da festa. Exemplos de resultados Teste 1: 4 Teste 2: 0 4. Restrições: Numero de pessoas envolvidas menor que 1.000. Comprimento máximo do nome: 15. Pode haver até 150 presentes na festa. 5. Conjuntos de Testes Clique aqui para acessar os conjuntos de dados a serem utilizados. 6. Gabarito Clique aqui para acessar o gabarito utilizado na correção. Carga Pesada Um dos maiores problemas no transporte de cargas pesadas por rodovias é a altura dos viadutos, pois muitas vezes a carga é mais alta do que o vão do viaduto sob o qual o caminhão deve passar. Considere o mapa abaixo. É possível tranportar uma turbina de hidroelétrica, que em cima do caminhão mede 7 metros de altura, da cidade Xis da Serra para a cidade Ypsilon Bonito? Neste caso é fácil perceber que a resposta é sim, pois o menor vão encontrado no caminho, se utilizarmos as estradas BR-64 e BR-1024, é de 9 metros. No caso geral, com dezenas de cidades e estradas, a resposta pode não ser tão evidente. 1. Tarefa Sua tarefa é determinar, para um dado par de cidades X e Y, qual a carga mais alta que pode ser transportada de X para Y por meio rodoviário, conhecendo todas as estradas da região e a altura de todos os túneis e viadutos dessas estradas. Considere que todas as estradas têm limitação de altura e que a interligação das estradas ao redor das cidades não tem restrição de altura. 2. Dados Voce vai receber vários conjuntos de teste. O número máximo de cidades, N, em cada teste é 100. As cidades são numeradas de 1 a N. A primeira linha do conjunto de teste contém dois inteiros positivos X e Y que representam respectivamente as cidades origem e a cidade destino da carga (1 <= X <= N, 1 <= Y <= N). As linhas seguintes contêm cada uma a descrição de uma estrada. Cada descrição é composta por três inteiros A, B e C, representando respectivamente a cidade onde a estrada inicia, a cidade onde a estrada termina e a altura do viaduto ou túnel mais baixo no trajeto de A para B. Em cada conjunto de teste, sempre há ao menos um caminho de X para Y. Os testes são separados por uma linha em branco. Exemplo de Dados 2 4 1 4 5 2 4 12 1 1 1 2 3 3 2 3 3 1 10 8 12 5 3. Resposta Para cada conjunto de teste, você deve escrever duas linhas de resposta. A primeira linha deve conter um identificador do conjunto de teste, no formato Teste n, onde n é numerado a partir de 1. Na segunda linha deve aparecer a altura máxima da carga encontrada. Exemplo de Resposta Teste 1 12 Teste 2 10 (esta resposta corresponde ao exemplo de dados acima) 4. Restrições 1 1 1 1 1 <= <= <= <= <= X <= 100 Y <= 100 A <= 100 B <= 100 C <= 50 5. Conjuntos de Testes Clique aqui para acessar os conjuntos de dados a serem utilizados. 6. Gabarito Clique aqui para acessar o gabarito utilizado na correção. Desordens Uma permutação dos números de 1 a N é uma seqüência de números a1, a2, ... aN na qual cada um dos números de 1 a N aparece exatamente uma vez. Uma desordem de uma permutação é uma nova permutação que se obtém ao realizar um conjunto de intercâmbios de pares de números na permutação origem de tal forma que cada número seja intercambiado no máximo uma vez. 1. Tarefa Sua tarefa é determinar a menor quantidade de desordens necessárias para transformar a permutação 1, 2, ... N em uma outra permutação dada (chamada de permutação objetivo). Por exemplo, com N=5, para obter-se a permutação 3, 4, 1, 5, 2 são necessárias duas desordens: a primeira intercambiando 1 com 3, e 2 com 5; a segunda intercambiando 5 com 4. 2. Dados Cada conjunto de teste que você receberá é composto por duas linhas. A primeira linha contém um inteiro positivo, N, que indica a quantidade de números da permutação. A segunda linha contém a permutação objetivo, composta de N inteiros positivos, separados por espaço em branco. Exemplo de Dados 5 3 4 1 5 2 7 3 2 1 7 6 5 4 3. Resposta Para cada conjunto de teste você deve produzir duas linhas na resposta. A primeira linha deve conter um identificador do conjunto de teste, no formato "Teste n", onde n é numerado a partir de 1. A segunda linha deve conter o número de desordens necessá para se atingir a permutação objetivo. Exemplo de Resposta Teste 1 2 Teste 2 1 (esta resposta corresponde ao exemplo de dados acima) 4. Restrições 1 <= N <= 10.000 5. Conjuntos de Testes Clique aqui para acessar os conjuntos de testes. 6. Gabarito Clique aqui para acessar o gabarito utilizado na correção. Cubos Um brinquedo que diverte muito as crianças é o que utiliza pequenos cubos de madeira para construção de cidades. As crianças em geral constróem altas torres, mas Joãozinho tem um plano diferente: ele quer construir uma grande cidade. Seu pai comprou uma mesa retangular, onde cabem K blocos na largura e L blocos no comprimento. Joãozinho decidiu planejar cidade antes de construí-la. Ele desenhou um quadriculado consistindo de K x L quadrados, e quer colocar torres compostas de um ou mais blocos empilhados em alguns dos quadrados desenhados. Joãozinho está interessado apenas nas vistas frontais e laterais da sua cidade, e portanto seus planos consistem apenas dessas duas vistas (projeções bidimensionais da cidade planejada). Um exemplo do plano de uma cidade de cubos de madeira é mostrado abaixo: 1. Tarefa O pai de Joãozinho está preocupado em saber se há cubos de madeira em número suficiente para construir a cidade planejada. Você deve determinar o número mínimo e o número máximo de cubos para construir uma cidade que corresponde ao plano de Joãozinho. Deve também detectar ainda o caso de ser impossível construir uma cidade de acordo com o plano. 2. Dados Você receberá um conjunto de testes constituído de várias linhas. A primeira linha contém dois inteiros positivos, K e L, representando respectivamente a largura e comprimento da mesa. Nem a largura nem o comprimento são maiores do que 100.000. As K linhas seguintes descrevem a vista frontal; a descrição consiste de uma série de alturas das torres em cada quadrado da esquerda para a direita (a altura é medida em número de cubos). As L linhas seguintes descrevem, de maneira similar, a vista lateral da cidade. Você pode supor que não há torres de altura superior a 5.000 cubos, e o número máximo de cubos para construir uma cidade não é superior a 2.000.000.000. Exemplo de Dados 4 3 1 3 4 2 1 4 2 3. Resposta Para cada conjunto de teste, você deve produzir apenas uma linha na sua resposta. Se não é possível construir uma cidade com as vistas dadas, essa linha deve conter apenas a palavra "impossivel". Caso contrário a linha deve conter dois números inteiros, separados por um espaço em branco: o primeiro é mínimo e o segundo é o máximo número de cubos necessários para construir a cidade de acordo com os planos de Joãozinho. Exemplo de Resposta 10 21 (esta saída corresponde ao exemplo de entrada acima) 4. Restrições 0 ≤ K ≤ 100.000 0 ≤ L <= 100.000 5. Conjuntos de Testes 6. Respostas