quinta-feira, 27 de junho de 2013

Etapa 3 - Resultados e Dicas

Olá pessoal,

Nesse sábado 22/06 foi realizada a terceira e última etapa da seletiva UFRN para a Maratona de Programação. Infelizmente, não tivemos mais competidores entrando no ranking, fazendo com que terminássemos com 11 pessoas classificadas para as equipes da UFRN (uma das equipes terá o direito de escolher o terceiro competidor). Essa foi a competição em que mais problemas foram resolvidos, tendo Álvaro novamente em primeiro, com 6 problemas; em seguida, Charles, Argus e Lucas Tomé com 5 problemas cada.


Esses problemas acabaram por ser escolhidos meio nas pressas, resultando em uma competição um pouco mais fácil do que as demais, todavia ainda teve problemas complexos. Os arquivos de entrada/saída, as soluções para cada problema e a prova em PDF podem ser baixados aqui. Ainda, para os que preferirem testar usando juízes online, seguem abaixo os links para os problemas originais, bem como dicas de como resolvê-los.

A - Figuras Recursivas: calcular a forma para encontrar o lado do quadrado inscrito em um círculo e o raio de um círculo inscrito em um quadrado. Depois iterar sobre a quantidade de círculos.
B - Pontos de Amizade: questão simples de grafos, apenas sendo necessário iterar sobre cada par de vértices e verificar a condição apresentada no enunciado.
C - Soma de Raízes Ímpares: talvez o problema mais difícil da prova, considerando que os limites são bem altos e seria preciso encontrar uma fórmula para a soma.
D - Divisão da Pizza: como os limites são baixos, podem ser tentadas todas as direções possíveis para vetores entre pares de vértices.
E - Composição de Jingles: para evitar a utilização de ponto flutuante, multiplique cada valor por 64 e teste se a soma é igual a 64. Apesar de que sem esse truque a questão também passa.
F - Irmãos: simulação direta do que é descrito no problema. É necessário somente tomar cuidado com os casos de borda.
G - Par ou Ímpar: armazene apenas a quantidade de pares e ímpares para cada lado. Lembre das funções min e max, pois elas podem ser úteis.
H - Feynman: faça os cálculos para os exemplos menores e facilmente virá um padrão na resposta.

sábado, 22 de junho de 2013

Etapa 2 - Resultados e Dicas

Olá pessoal,

Nessa sexta 21/06 ocorreu a segunda etapa da seletiva UFRN para a Maratona de Programação. Tivemos mais um competidor entrando no ranking e, assim, temos 11 pessoas para as equipes da UFRN. Ao final da competição, tivemos Argus em primeiro lugar, porém ele não está competindo pelas vagas. Contando apenas os concorrentes, temos Álvaro em primeiro, com 3 questões resolvidas e todos os demais (8 pessoas) com 2 questões resolvidas.


Novamente, os problemas foram escolhidas dentre diversas competições e, para aqueles que desejarem, os arquivos de entrada/saída, bem como as soluções para cada um deles e o PDF da prova podem ser baixados aqui (o arquivo de solução do Oráculo de Alexandria não está presente). Para aqueles que querem testar diretamente em um juiz online, veja os links abaixo, juntamente com uma dica sobre cada problema.

A - Arcade Manao: busca em largura em que cada estado é a célula em que se encontra e o tamanho da escada necessário para chegar até ela.
B - Cerca Engraçada: testa todas as possíveis substrings e verifica se é uma cerca válida.
C - Mova a Água: busca em largura em que cada estado é a situação atual dos jarros.
D - Triângulo Minimal: como existem poucas formas de dividir, é fácil chegar a uma fórmula fechada para o resultado.
E - WiFi: busca binária na resposta.
F - Oráculo de Alexandria: questão bem direta, precisando apenas calcular a fórmula da mesma maneira que é apresentada na questão.
G - Validador de Números de Nascimento: lembrar de verificar os anos bissextos e a quantidade de dias em cada mês.
H - Galou está de volta!: busca no grafo, marcando quem já foi visitado no sentido horário, anti-horário e nos dois.

segunda-feira, 17 de junho de 2013

Etapa 1 - Resultados e Dicas

Olá pessoal,

Nesse sábado dia 15/06 ocorreu a primeira etapa da Seletiva UFRN para a Maratona de Programação. Infelizmente, dos 29 inscritos para a seletiva apenas 12 compareceram, além de um competidor que não está concorrendo às vagas, porém a competição foi bem aproveitada por aqueles que lá estiveram. Como resultado final, tivemos Charles em primeiro lugar com 3 problemas resolvidos, Lucas Tomé em segundo com 2 problemas resolvidos e outros 8 com apenas 1 problema resolvido, diferenciando-se apenas pela penalidade de tempo (considerando que Argus não está concorrendo as vagas).
 
Os problemas da competição foram escolhidos dentre diversas competições passadas ao redor do mundo, tanto de fases regionais do ICPC quanto de outras competições como TopCoder e Google Code Jam. Os arquivos de entrada e saída de cada problema, bem como a nossa solução para eles podem ser baixados aqui (o código do Roleta Turca não está presente). Para aqueles que querem testar diretamente em juiz online, veja os links abaixo, bem como uma dica simples sobre cada problema.

A - Emoticons: pense em cada emoticon como um intervalo, então o que é preciso descobrir é o menor número de pontos que irão cobrir todos os intervalos.
B - Fraude Eleitoral: com os números dados, veja qual a menor e a maior soma que pode ter acontecido antes do arredondamento.
C - Recomposição de Pontuação Simples: podem ser testadas todas as permutações de pontuações possíveis.
D - Reorganização do Reino: árvore geradora mínima com os pesos das arestas existentes como negativos.
E - Roleta Turca: Programação Dinâmic.
F - Saudações Seguras: números de catalão (também pode ser feito recursivamente).
G - Tesouro: PD com bitmask, em que o estado é o bitmask dos baús já abertos.
H - TriFibonacci: ad hoc, porém precisa ser tomado cuidado com o fato de que o número a ser resposto tem que ser positivo.

quarta-feira, 12 de junho de 2013

Seletiva UFRN - Horários Definidos

Olá pessoal,
Finalmente foram definidas as datas para as provas da Seletiva UFRN 2013. A primeira etapa ocorrerá no sábado dia 15/06, a segunda irá ocorrer na sexta-feira 21/06 e a terceira acontecerá no sábado dia 22/06, todas as etapas acontecendo no período da tarde, das 14h às 17h, na sala 3E1.
Para mais informações, consulte o blog http://maratonaufrn.blogspot.com.br/.
Enquanto isso, vá treinando nos juízes online disponíveis, como SPOJ Brasil, URI Online Judge ou ainda no Top Coder, resolvendo problemas no Practice Room e lendo os tutoriais disponíveis.

sexta-feira, 7 de junho de 2013

Primeira Etapa Adiada!

Olá pessoal,

Devido a uma prova que irá acontecer no dia 08/06/2013 para alguns alunos do BTI, resolvemos adiar a primeira etapa da Seletiva UFRN para a Maratona de Programação. Dessa forma, para que não aconteçam mais problemas, os dias das provas serão marcados de acordo com a disponibilidade da maioria e, para isso, preciso que preencham o formulário abaixo.

https://docs.google.com/forms/d/1r40psLz8pAoOYtT_95msfWNpWm1jtAnLolzReimBL0o/viewform

Como não podemos contar com o pessoal nos dias de férias, as possibilidades para as provas serão todas nessas 2 semanas que seguem.

Enquanto isso, vão treinando um pouco mais e muito obrigado pela compreensão!