Simulado OBI 2023 - Fase 1 - 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.
Para conferir a prova na íntegra, clique aqui.
Trio de Nerds
Comentário escrito por Vitor Veiga
Conhecimento prévio necessário:
O problema nos dá 3 strings, que representam os instrumentos tocados por Luca, Leo e Lúcio, e quer saber essas strings são “violao”, “piano” e “bateria”, em qualquer ordem.
Nossa estratégia de resolução será declarar 3 variáveis booleanas , que começam sendo falsas. Enquanto lemos a entrada, checar se cada uma das strings de entrada representa alguma das strings alvo. Caso representem, marcamos como verdadeira a booleana do respectivo instrumento.
Se no final todas as booleanas estiverem marcadas, todos os instrumentos estão presentes e retornamos “S”. Caso contrário, retornamos “N”.
Outra maneira de resolver é ler as 3 strings em e chegar se elas são todas diferentes entre si, ou seja,
,
e
.
Clique aqui para conferir o código
Atacante Devedor
Escrito por Arthur Lobo
Conhecimento prévio necessário:
![res1 = 0](https://i0.wp.com/noic.com.br/wp-content/plugins/latex/cache/tex_c57447c47b9acf183129c2db50a432ca.gif?w=640&ssl=1)
![res2 = 0](https://i0.wp.com/noic.com.br/wp-content/plugins/latex/cache/tex_a30dd6d77db574f9c742cb2f3e66cace.gif?w=640&ssl=1)
![i](https://i0.wp.com/noic.com.br/wp-content/plugins/latex/cache/tex_865c0c0b4ab0e063e5caa3387c1a8741.gif?w=640&ssl=1)
![1](https://i0.wp.com/noic.com.br/wp-content/plugins/latex/cache/tex_c4ca4238a0b923820dcc509a6f75849b.gif?w=640&ssl=1)
![N](https://i0.wp.com/noic.com.br/wp-content/plugins/latex/cache/tex_8d9c307cb7f3c4a32822a51922d1ceaa.gif?w=640&ssl=1)
![i](https://i0.wp.com/noic.com.br/wp-content/plugins/latex/cache/tex_865c0c0b4ab0e063e5caa3387c1a8741.gif?w=640&ssl=1)
B_i" />: Isso significa que o atacante emprestou mais dinheiro para o amigo do que o amigo para ele, então o quanto ele recebe aumenta em
.
: Isso significa que o atacante emprestou menos dinheiro para o amigo do que o amigo para ele, então o quanto ele paga aumenta em
.
: Nada acontece.
No fim, basta imprimir o valor de e
.
Clique aqui para conferir o código
Banda de Nerds
Escrito por Caique Paiva
Conhecimento prévios necessário:
Vamos fazer um map de strings para vectors de inteiros, onde o guarda as habilidades dos músicos que tocam o instrumento
. Vamos olhar para o sample para ficar mais claro
7 1
violao 3
guitarra 2
bateria 4
violao 3
violao 8
guitarra 3
piano 4
Então, montando o map dito acima, os valores vão ser os seguintes
violao
guitarra
bateria
piano
Então, para resolver o problema, vamos ordenar todos os vetores em ordem decrescente, e somar os primeiros de cada um dos vetores, e essa soma vai ser a resposta do nosso problema.
Clique aqui para conferir o código
(Um detalhe importante do código é que, a soma final pode ser um valor muito grande, já que e
, e fazendo uma estimativa simples, a gente tem que o valor da soma pode ser
, que passa do limite de inteiro, ou seja, temos que usar long long int. Veja que, no código colocado acima, eu coloco #define int long long, isso faz com que todo int vire long long, resolvendo o nosso problema)