OBI 2023 – Fase 2 – Turno A – Programação Nível Júnior
Se você quiser se preparar para a OBI, não deixe de conferir o Roteiro de estudos de informática, e também a página de informática do NOIC, com todos os nossos materiais.
Para conferir a prova na integra:
Código de Compressão
Comentário por Murilo Maeda
Para esse problema basta manter em uma variável auxiliar $$k$$ qual é o número de caracteres na sequência de caracteres iguais atual. Se um caractere é igual ao anterior, fazemos $$k++$$. Se um caractere é diferente do anterior, imprimimos $$k$$ e depois o caractere anterior. Lembre-se de no final do código imprimir $$k$$ e o último caractere da string.
Clique aqui para conferir o código
Grupos de Trabalho
Comentário por Henrique Vianna
Para resolver esse problema, basta marcarmos em qual grupo cada um dos alunos está e depois passar pelas $$M + D$$ condições, checando se elas estão satisfeitas. Para cada condição do primeiro tipo, se os dois alunos estiverem em grupos diferentes, aumentamos a resposta em um. Da mesma forma, para cada condição do tipo dois, se os dois alunos estiverem no mesmo grupo, devemos adicionar um à resposta.
Clique aqui para conferir o código
Pizza da OBI
Comentário por João Pedro Castro
Sabemos que teremos $$G$$ e $$M$$ pizzas com respectivamente $$8$$ e $$6$$ pedaços de mesmo tamanho, logo a fórmula para a quantidade total de pedaços de pizza (vamos chamar esse número de $$P$$) é: $$P := 8 \cdot G + 6 \cdot M$$. Sabendo que a quantidade de pedaços de pizza desejados é $$N$$, podemos dizer que se $$P \leq N$$ não sobrarão pedaços (resposta 0), e caso $$P > N$$ (ou seja, se a condição anterior for falsa), sobrarão exatamente $$P – N$$ pedaços. Você pode fazer essa comparação por estruturas condicionais, ou simplesmente usar a função $$max$$, que retorna o maior valor dentre os dois apresentados: $$max(P – N, 0)$$ (se $$P < N$$ a primeira expressão será negativa, e a função retornará 0).
