OBI 2024 - Fase 2 - Programação Nível Júnior

OBI 2024 - Fase 2 - 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 nossos materiais.

Avenida

Comentário por Henrique Vianna

Perceba que há duas rotas que podem ser escolhidas:

  • Ir ao último ponto de ônibus anterior à escola e andar o que faltar, ou seja, D \% 400 metros.
  • Ir ao primeiro ponto de ônibus posterior à escola e "voltar" andando, ou seja, 400 - D \% 400 metros.

Portanto, a distância mínima que Luiza precisará andar será simplesmente o mínimo entre esses dois valores.

Segue o código:


#include <bits/stdc++.h>
using namespace std;
int main()
{
int d; cin >> d;
cout << min(d % 400, 400 - d % 400) << '\n';
}

view raw

Avenida.cpp

hosted with ❤ by GitHub

Alfabeto

Comentário por Murilo Maeda Kataoka

Conhecimento necessário

Para esse problema, só precisamos de uma estrutura que seja capaz de nos dizer se um certo caracter está ou não no alfabeto. Uma estrutura que faz exatamente isso é o map, da STL do C++. Com ele, basta passarmos pelos caracteres do alfabeto alienígena e marcar map[caracter] = true. Depois, quando estivermos passando pela mensagem, basta ver se o map do caracter em questão foi ou não ativado.

Segue o código:


#include<bits/stdc++.h>
using namespace std;
int main()
{
cin.tie(0)->sync_with_stdio(0);
int N,K; cin >> N >> K;
string alfabeto, mensagem; cin >> alfabeto >> mensagem;
map<char,bool> marc;
for(char cur : alfabeto)
{
marc[cur] = true;
}
bool eh = true;
for(char cur : mensagem)
{
if(!marc[cur])
eh = false;
}
if(eh) cout << "S\n";
else cout << "N\n";
}

view raw

Alfabeto.cpp

hosted with ❤ by GitHub

Atletismo

Escrito por João Pedro Castro

Conhecimentos Prévios Necessários:

Esse é um problema clássico de vetores. Vamos chamar o i-ésimo atleta a cruzar a linha de chegada de x, perceba que no momento que recebemos o x de um i específico já sabemos exatamente sua posição no ranking, seja rank_j o rank do corredor de número j, temos que rank_x = i. Agora vamos receber um por um e imprimir o vetor rank no final. Um detalhe é perceber que precisamos fazer o vetor 1-indexado, já que a numeração dos corredores vão de 1 até N.

Clique aqui para ver o código