ETAPAS

ETAPA 7 (12/11) – …AND CHOCOLATE FOR ALL!


A última etapa do BXCOMP 2014 foi realizada nesta semana e, depois de 7 etapas (e muitos chocolates), os ganhadores foram conhecidos. A sétima etapa contou com a presença de representantes dos apoiadores do campeonato e de professores do curso de SI.

Essa última etapa foi composta por 3 desafios: Vizinhos Próximos, Hotel e Números Sortudos. No primeiro problema o desafio era diagnosticar exames de Raio-X automaticamente a partir da similaridade com exames já diagnosticados. A partir de um parâmetro k era necessário encontrar os k exames mais parecidos com o exame não diagnosticado, utilizando esses exames mais parecidos para atribuir ao Raio-X novo o diagnóstico mais presente nesses k exames. Por ser um algoritmo de Inteligência Artificial, ele acabou sendo o mais difícil da etapa. No desafio Hotel, os calouros deviam ajudar um gerente de hotel a descobrir se haviam quartos para todos os hóspedes, recebendo, portanto, as datas de chegada e partida de cada hóspede, além do número de quartos disponíveis no hotel. Para solucionar esse problema bastava verificar se no dia com mais pessoas hospedadas o número de quartos era ultrapassado. No último desafio, os participantes deviam, a partir de uma fórmula matemática dada no enunciado, descobrir a frequência de “Números Sortudos” de um conjunto de números dados como entrada.

No final do campeonato o pódio ficou composto pelas equipes Tempestade de Ozz com a medalha de ouro, 20 GOTO 10 com a medalha de prata e Debuggers com a medalha de bronze. Além das equipes vencedoras, um grande número de equipes conseguiu resolver os desafios nesta última etapa.

As medalhas foram entregues pelos professores convidados Flávio Coutinho, Luciano Digiampietri e pela professora (e tutora do PET) Sarajane Peres. O prêmio do primeiro lugar foi um vale compras na livraria Cultura, presenteado pelos apoiadores da empresa Quantica.

Agradecemos aos professores, à empresa Quantica e aos participantes pelo sucesso de mais um campeonato!

EQUIPE 1

EQUIPE 2

EQUIPE 3

GERAL


Desafios da etapa e propostas de solução:

(Clique no nome do desafio para baixá-lo)

 

ETAPA 6 (05/11) – 4 OUTRA VEZ?


A penúltima etapa do BXCOMP 2014, realizada esta semana, foi especialmente importante para o campeonato, uma vez que foi a etapa temática dedicada aos apoiadores do BXCOMP. Estamos falando é claro que Etapa Quantica. Além de uma decoração com cartazes e bexigas temáticas no laboratório 07 de SI (local em que ocorrem as etapas) também tivemos a participação de funcionários da Quantica, dentre eles a ex-petiana Priscilla, que falaram com os competidores principalmente sobre o trabalho desenvolvido pela Startup, dentre outros assuntos.

Nessa semana tivemos, mais uma vez, quatro desafios. Além da quantidade, um destes desafios foi novamente redigido em inglês. Os desafios propostos foram Viagem, Armarios, Bandas e SubVetor: no primeiro, era necessário retornar a a quilometragem percorrida até cada cidade, incluindo origem, paradas e destino. O segundo desafio, requeria uma lógica específica, sendo necessário informar o número de trocas mínimas necessárias para satisfazer o problema de locação de armários. O terceiro desafio foi o de maior número de acertos sendo que, para a sua resolução, era necessária a impressão de algumas informações, sendo elas os anos em ordem crescente e sem repetição, o maior e menor ano, além da média de anos. O quarto, e último desafio, requeria a maior soma de um conjunto de sub vetores gerados através de um determinado número de vetores fornecidos na entrada.

Desta vez, nenhuma das equipes participantes conseguiu resolver todos os desafios propostos dentro do tempo determinado para a etapa, porém, por outro lado, a maioria das equipes resolveu no minimo um dos desafios, algo especialmente importante para esta etapa, uma vez que a mesma tinha o dobro da pontuação convencional, totalizando em 24 pontos para a equipe que conseguisse resolver todos os quatro desafios.

Semana que vem (14/11) teremos a sétima e última etapa do campeonato, onde iremos saber quais serão as três equipes com melhor desempenho nesta edição do campeonato, bem como a premiação e encerramento do campeonato. Contamos com a presença de todas as equipes. Até lá!


Desafios da etapa e propostas de solução:

(Clique no nome do desafio para baixá-lo)

 

ETAPA 5 (22/10) – The book is on the table


Nessa semana tivemos apenas dois desafios! A surpresa foi que ambos estavam em inglês! Os desafios propostos foram Restaurante e Pokemon: no primeiro era necessário retornar o número de planetas diferentes que foram servidos mais vezes do que um valor K, em cada rodada R. O segundo desafio, apesar da temática diferente, era similar ao desafio Asteroide da primeira rodada do campeonato, sendo que os competidores tinham que verificar quantos pokémon eram encontrados (colisões) em determinado tempo, considerando que dessa vez os objetos poderiam se mover em 8 sentidos e possuíam velocidades diferentes. Parabenizamos as equipes “Tempestade de Ozz”, “Puzzle” e “Debuggers” por terem resolvido todos os desafios propostos!
Vamos as considerações:
Apesar das várias submissões corretas nessa etapa, notamos alguns erros recorrentes em ambos os desafios: algumas equipes desenvolveram a solução para o problema de forma que seja possível testar apenas um caso de teste por vez. Dessa forma, ao testarmos a submissão, um runtime error era retornado pelo autojudge, recomendamos que os competidores testem todos os casos de teste fornecidos de uma só vez para verificar possíveis erros no código.
Um problema mais específico ocorreu nas submissões do desafio Restaurante, algumas equipes instanciaram o vetor correspondente a mesa de forma que os planetas envolvidos estivessem numerados de 1 até N. Ao se assumir isso, as submissões retornavam runtime error, logo no primeiro caso de teste do grupo, onde os planetas não eram numerados de forma sequencial.
Lembramos a todos que na próxima semana não haverá etapa do campeonato, sendo assim, nosso próximo encontro será no dia 5/11 com a Etapa Quantica, que terá pontuação dobrada, não percam!


Desafios da etapa e propostas de solução:

(Clique no nome do desafio para baixá-lo)

 

ETAPA 4 (15/10) – 2 é pouco, 3 é bom e 4 é…um estouro!


Após uma semana de descanso, o campeonato voltou com força total! Nessa etapa, as equipes deveriam resolver 4 desafios: Esquema Rimático, Copa do Mundo, Corujinhas Trabalhadoras e Serviço Secreto. No primeiro desafio, era necessário verificar a palavra final de cada verso para obter o esquema rimático do poema; no segundo, deveria-se encontrar a seleção campeã da Copa do Mundo com base nos resultados dos jogos que ocorreram na fase final do campeonato; no terceiro desafio, dada uma sala que deveria ser limpa por uma coruja e que corujas possuíam n corujinhas debaixo de suas asas, deveria-se obter o número de corujas que não limpariam a sala e a soma das alturas de todas as corujas; por fim, no quarto e último desafio, era necessário converter números para palavras e palavras para números de acordo com o esquema fornecido pelo enunciado.

Percebemos que muitas equipes tiveram dificuldades na resolução dos desafios, pois nenhuma equipe conseguiu resolver os 4 desafios propostos. Apenas 3 equipes pontuaram nessa etapa: a equipe “Tempestade de Ozz”, que resolveu 3 desafios, e as equipes “Debuggers” e “Javaleiros”, que resolveram 1 desafio cada uma.

Analisamos as submissões realizadas pelas equipes e percebemos que, novamente, as equipes estão com dificuldades em alguns pontos que já alertamos anteriormente. Por isso, gostaríamos de reforçar algumas dicas:

  • Novamente, algumas equipes ficaram concentradas na resolução de um único exercício e, com isso, perdem a oportunidade de resolver mais de desafios em paralelo. A nossa dica é que vocês tentem adotar a estratégia de analisar quais são os desafios mais fáceis e separá-los entre os membros da equipe, assim podem obter uma pontuação maior na etapa;

  • Saber como utilizar o Scanner para a leitura da entrada dos casos de teste é imprescindível. Caso tenham dúvidas sobre o seu funcionamento, vejam as resoluções dos desafios e utilizem os casos de teste para entenderem como é feita a leitura. Tanto a resolução dos desafios quanto os casos de teste são disponibilizados nos arquivos .zip abaixo;

  • Algumas equipes quase tiveram suas submissões aceitas para o desafio “Serviço Secreto”; só não o tiveram porque utilizaram int para armazenar o número que deveria ser convertido para uma palavra. O BOCA dava a submissão como errada porque haviam 2 casos de teste em que os números eram tão grandes que “estourava” o tamanho do int e, com isso, a resposta ficava errada. Para contornar esse problema, bastava armazenar o número em um long.

Vocês podem conferir a resolução de cada desafio proposta pela organização nos links no final desse post.

Nos vemos na semana que vem!


Desafios da etapa e propostas de solução:

(Clique no nome do desafio para baixá-lo)

 

ETAPA 3 (1/10) – Lógica, corretor e algumas informações!


Durante a tarde desta quarta-feira, ocorreu a terceira etapa do BXComp 2014! Para esta etapa, foram propostos 3 desafios: Progressões Aritméticas, Bolo de Aniversário e Entrega de Encomendas. No primeiro desafio, cada equipe tinha como tarefa montar um algoritmo que, dada um sequência em ordem crescente de número inteiros, deveria exibir como resposta a quantidade mínima de conjuntos em que a sequência deveria ser quebrada para que todos os conjuntos formassem progressões aritméticas; no segundo desafio, era dada um entrada composta por 10 números inteiros que representavam a quantidade de velas de aniversário de cada dígito que estava a disposição para serem colocadas em um bolo de aniversário (por exemplo, o primeiro número representava quantas velas do dígito “0” estavam disponíveis, o segundo representava quantas velas do dígito “1”, e assim por diante até o digito 9). A ideia do desafio era, através de uma entrada que apresentava um determinado numero de velas disponíveis de cada dígito, apresentar uma saída dizendo o menor número entre 1 e 99 que não poderia ser representado por falta de velas, ou apresentar saídas para os casos de não poder formar nenhuma ou qualquer idade entre a faixa de idade especificada; já no terceiro e último desafio, era necessário calcular a rota com a menor distância entre uma central de distribuição de encomendas dos correios e a cidade de destino para a qual a encomenda deveria ser enviada, a partir de uma entrada que especificava o número de cidades, número de caminhos possíveis, um “mapa” mostrando as ligações entre as cidades, as distâncias entre uma cidade e outra, e, por fim, qual era a cidade de destino que receberia a encomenda.

Das 14 equipes competidoras, duas resolveram apenas um dos três desafios, uma resolveu dois desafios e duas equipes conseguiram solucionar os três problemas propostos para essa etapa. Nós da organização do campeonato gostaríamos de parabenizar as equipes “20 GOTO 10” e “Tempestade de Ozz” por conseguirem resolver todos os desafios propostos para a terceira etapa do campeonato.

Após observar o comportamento das equipes e das submissões feitas, gostaríamos de chamar a atenção para alguns pontos:

  • Reparamos, durante a etapa, que algumas equipes ficaram muito tempo concentrando seus esforços com a solução de apenas um único exercício, enquanto haviam mais dois exercícios para serem solucionados. Uma das principais proposta do BXComp é que a equipe saiba lidar com o gerenciamento de tempo para assim ter chances de conseguirem resolver mais desafios.

  • Entender como funciona o Scanner do Java e como são lidas as entradas de dados para os desafios é algo fundamental e que com certeza facilita as equipes a desenvolverem soluções para os problemas propostos. Algumas equipes encontraram dificuldades durante a etapa exatamente por não entenderem muito bem como funciona a leitura de dados a partir de um Scanner.

Nós, da organização do campeonato, também gostaríamos de informar aos competidores sobre um infeliz imprevisto que ocorreu durante a última etapa: o nosso corretor automático (BOCA) apresentou algumas instabilidades durante a correção de algumas submissões, gerando a exceção “InputMismatchException” e retornando para nós o aviso de “Runtime Error” como resposta à submissão do desafio “Bolo de Aniversário” ao invés de apontar o retorno correto. Nós fomos atrás de informações e consultamos o Prof. Dr. Luciano Digiampietri para entender o motivo pelo qual o corretor apresentou este erro de funcionamento. Já temos algumas possíveis explicações e estamos trabalhando para que esse tipo de problema não venha a ocorrer novamente.

Após fazer a checagem das submissões, foi constatado um total de duas equipes prejudicadas pela falha no corretor: Aramat e Debbugers. No caso da primeira equipe, o corretor estava retornando Runtime Error ao invés de Wrong Answer, o que a prejudicou na hora de revisar a lógica do desafio. Para a equipe Aramat, nós retiramos as submissões erradas que retornaram Runtime Error (quando ocorreu a exceção “InputMismatchException”) do Ranking. Já no caso da equipe Debbugers, infelizmente, retornamos “Runtime Error” em uma submissão que estava correta. Nós atualizamos o Ranking contabilizando a submissão correta da equipe.

Vale ressaltar que o BOCA não é um corretor que foi desenvolvido pela organização do campeonato. O mesmo costuma ser utilizado em olimpíadas e maratonas de programação, então trata-se de um solução utilizadas em outras competições e que adaptamos para o nosso campeonato. Apesar de toda a preparação que desempenhamos antes de cada etapa, este era um problema que não estávamos cientes da possibilidade de ocorrer e gostaríamos de expressar nossas mais sinceras desculpas para as equipes prejudicadas e dizer que estamos trabalhando para que todas as demais etapas ocorram sem imprevistos.

É importante informar que todos os desafios são testados e revisados antes de cada etapa, visando garantir o perfeito funcionamento do campeonato, porém, é a primeira vez, após quatro anos de organização do campeonato, que o corretor apresenta alguma instabilidade e devemos ressaltar que este foi um problema exclusivo desta etapa. Fizemos uma revisão das submissões das duas etapas anteriores e constatamos que o corretor funcionou normalmente nas mesmas.

Vocês podem conferir a resolução de cada desafio proposta pela organização nos links no final desse post.

Gostaríamos de lembrá-los que semana que vem (dia 8/10) não teremos etapa, como já estava previsto e pode ser conferido em nosso regulamento. Sendo assim, nos vemos na próxima etapa, no dia 15/08. Até lá!


Desafios da etapa e propostas de solução:

(Clique no nome do desafio para baixá-lo)

 

ETAPA 2 (24/09) – Números, números everywhere!


E numa tarde quente de quarta-feira, teve início a segunda etapa do BXComp 2014! Nessa etapa, foram propostos três desafios: Concatenação de Binários, Números por Extenso e Números Pares. No primeiro desafio, os competidores deveriam fazer conversões da base decimal para a binária e vice-versa; no segundo, era necessário realizar a manipulação de Strings para substituir, em um texto, números em algarismo por números escritos por extenso; no último desafio, era necessário calcular a soma dos quatro últimos números pares de uma sequência de números pares presente numa linha que seguia um padrão dado pelo desafio.

Das 14 equipes competidoras, 4 resolveram 1 desafio, 4 equipes resolveram 2 e 4, infelizmente, não resolveram nenhum desafio. E, claro, gostaríamos de parabenizar as equipes Aramat e Tempestade de Ozz, que resolveram todos os desafios!

Após observar o comportamento das equipes e das submissões feitas, gostaríamos de chamar a atenção para alguns pontos:

  • O BXComp é um campeonato que preza pelo trabalho em equipe, mas não podemos esquecer que se trata de uma competição. Por isso, é interessante que a equipe se divida e resolva mais de um desafio ao mesmo tempo. Assim, terá maiores chances de resolver mais desafios em menos tempo.

  • Apesar de 2 equipes resolverem o problema de números por extenso e de algumas equipes terem feito submissões, percebemos que as soluções foram feitas “de modo braçal”. Apesar de funcionarem, as equipes perderam um tempo precioso (afinal o mesmo é utilizado como critério de desempate) ao resolverem dessa forma. Nós propusemos uma solução um pouco mais “elegante” e rápida de ser codificada.

Vocês podem conferir a resolução de cada desafio proposta pela organização nos links no final desse post.

Para os que não conseguiram resolver os desafios, não fiquem tristes. Ainda dá tempo de se recuperarem na competição!

Nos vemos na etapa da semana que vem! :)


Desafios da etapa e propostas de solução:

(Clique no nome do desafio para baixá-lo)

 

ETAPA 1 (17/09) – Começa mais uma edição!


A primeira etapa do IV BXComp ocorreu na quarta-feira (17/09), e contou com a participação de todas as equipes. Inicialmente, as equipes foram se acomodando no laboratório e respondendo o questionário pré-atividade de auto avaliação e expectativas quanto ao campeonato. Em seguida, foram instruídas acerca da manipulação do sistema BOCA.

Nessa etapa, foram propostos dois desafios: Binomial e Asteroide. No primeiro, os competidores recebiam dois valores e deveriam retornar o número binomial formado por eles. O segundo desafio, tinha como entrada as coordenadas de dois pontos (Terra e Asteroide) e suas direções e, a partir disso, elas deveriam retornar em qual tempo esses dois pontos colidiriam, ou se não havia risco de colisão.

De forma geral, as equipes tiveram um bom desempenho, com a maioria das equipes resolvendo ambos os desafios. Apesar disso, foram notados alguns padrões  nas submissões incorretas.

No problema do número binomial, uma falha recorrente nas submissões era a falta da implementação de um desvio condicional que, para o caso em que o denominador fosse maior que numerador, deveria resultar em zero.

No desafio dos asteroides, algumas equipes tiveram dificuldades relacionadas às restrições indicada no enunciado. Elas indicam a abrangência dos casos de teste, ou seja, os nossos casos de teste não ferem essas restrições. No caso desse desafio, por exemplo, não havia testes em que XA e Xt não sejam pares ou ímpares ao mesmo tempo, ou então que o t fosse negativo. Logo, os competidores não precisavam se preocupar em cobrir esses tipos de caso na solução.

Outra observação importante é quanto ao cuidado na formatação da saída. Além de espaços, tabulações e linhas a mais ou a menos serem consideradas Presentation Error, o uso de acentuações só deve ser feito quando exigido no enunciado (o uso indevido delas causa o erro Wrong Answer).

Para as próximas etapas, sugerimos que os competidores estudem os métodos relacionados à manipulação de strings (alguns dos métodos utilizados nas edições passadas podem ser conferidos nas homepages dos campeonatos anteriores) e sobre os métodos da classe Scanner, para realizar a leitura dos casos de teste.

Vocês podem conferir a resolução de cada desafio proposta pela organização nos links no final desse post.

Lembrando que cada desafio submetido corretamente valeu 3 pontos para a equipe e, nesta etapa, não serão consideradas as submissões erradas nem tempo de resolução. Entretanto, a partir da próxima etapa esses dois critérios serão muito importantes para a classificação, visto que serão utilizados como critério de desempate (para entender como é feito o desempate entre equipes, consulte o regulamento do BXComp 2014). E, além disso, as etapas valerão 12 pontos a partir de agora. Por isso, aproveitem nossas dicas e se preparem para quarta-feira que vem!


Desafios da etapa e propostas de solução:

(Clique no nome do desafio para baixá-lo)