OBI 2023 - Fase 2 - Programação Nível 1
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 nossos materiais
Prefixos
Comentário por Henrique Vianna
Para resolver esse exercício, basta checarmos os pares de caracteres em posições correspondentes, da esquerda para a direita. Se encontrarmos um par de caracteres diferentes, achamos a nossa resposta. Se isso nunca ocorrer, a resposta será simplesmente , uma vez que uma string é um prefixo da outra.
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 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
Distintos
Comentário por Murilo Maeda
Conhecimento prévio necessário:
Para esse problema, vamos utilizar a técnica de two pointers. A variável representa o índice mais à esquerda do segmento atualmente considerado e a variável representa o índice mais à direita do intervalo atualmente considerado. Como os valores têm um limite, basta manter um vetor que guarda a frequência dos valores para saber se há valores repetidos. Se quando tentamos expandir o segmento para a direita encontrarmos um número que já está no nosso segmento, calculamos o tamanho do segmento atual e checamos se ele é a melhor resposta até agora. Depois disso, movemos o limite esquerdo para a direita até que o valor que tentamos adicionar só apareça uma vez. A resposta vai ser o maior tamanho obtido durante todo o processo.
Complexidade: Passamos por cada índice uma vez com cada ponteiro, então a complexidade é