Exercícios da OBI 2018 Resolvidos - Segunda Fase - Nível PJ
Programação Competitiva
29/07/2018 15:57
3
minutos
Fala galera,
Hoje nós trazemos para vocês as resoluções dos exercícios da segunda fase da Olimpíada Brasileira de Informática de 2018, nível Programação Júnior (PJ).
Os problemas do nível PJ são normalmente problemas simples, ideais para quem está começando a aprender programação. Mesmo que você não tenha participado da OBI esse ano mas está aprendendo programação, esses problemas são muito bons para testar seus conhecimentos.
Todos os problemas já estão disponíveis no Neps Academy. É recomendado que você primeiro tente resolver o problema antes de conferir a resolução a seguir.
Copa
Código em C++
#include <iostream>
using namespace std;
int main(){
int L, K;
cin >> L >> K;
if( (L-1)/2 == (K-1)/2 ){
cout << "oitavas\n";
} else if( (L-1)/4 == (K-1)/4 ){
cout << "quartas\n";
} else if( (L-1)/8 == (K-1)/8 ){
cout << "semifinal\n";
}else {
cout << "final\n";
}
}
Pesos
Código em C++
#include <iostream>
using namespace std;
int main(){
int N;
int C[10005];
cin >> N;
for( int i = 1; i <= N; i++ ){
cin >> C[i];
}
int deuRuim = 0;
C[0] = 0;
for(int i = 1; i <= N; i++){
if( C[i]-C[i-1] > 8 ){
deuRuim = 1;
}
}
if(deuRuim == 1){
cout << "N\n";
}else{
cout << "S\n";
}
}
Cápsulas
Código em C++
#include <iostream>
using namespace std;
int N, F;
int C[1000005];
int dinheiro(int x){
int total = 0;
for(int i = 0; i < N; i++){
total += x/C[i];
}
return total;
}
int main(){
cin >> N >> F;
for(int i = 0; i < N; i++){
cin >> C[i];
}
//definir intervalo da resposta
int e=1, d=100000000, m;
//busca
while( e < d ){
m = (e+d)/2;
if( dinheiro(m) >= F ){
d = m;
}else{
e = m+1;
}
}
cout << e << endl;
}
Bons estudos!
Comentários