Sie sind auf Seite 1von 5

OLIM

PA
D

A
TIC
RM
O

EIRA DE
ASIL
IN
BR
F

AD

PU

IE D

TA

SOC

BR

A SIL

EIR A D E

CO

OBI2016
Caderno de Tarefas
Modalidade Programao Nvel Jnior
3 de junho de 2016
A PROVA TEM DURAO DE 3 HORAS

Promoo:

Apoio:

v1.0

Fase 1

Olimpada Brasileira de Informtica OBI2016

Instrues
LEIA ATENTAMENTE ESTAS INSTRUES ANTES DE INICIAR A PROVA
Este caderno de tarefas composto por 4 pginas (no contando a folha de rosto), numeradas
de 1 a 4. Verifique se o caderno est completo.
A prova deve ser feita individualmente.
proibido consultar a Internet, livros, anotaes ou qualquer outro material durante a prova.
permitida a consulta ao help do ambiente de programao se este estiver disponvel.
As tarefas tm o mesmo valor na correo.
A correo automatizada, portanto siga atentamente as exigncias da tarefa quanto ao
formato da entrada e sada de seu programa.
No implemente nenhum recurso grfico nas suas solues (janelas, menus, etc.), nem utilize
qualquer rotina para limpar a tela ou posicionar o cursor.
As tarefas no esto ordenadas, neste caderno, por ordem de dificuldade; procure resolver
primeiro as questes mais fceis.
Preste muita ateno no nome dos arquivos fonte indicados nas tarefas. Solues na linguagem
C devem ser arquivos com sufixo .c; solues na linguagem C++ devem ser arquivos com sufixo
.cc ou .cpp; solues na linguagem Pascal devem ser arquivos com sufixo .pas; solues na
linguagem Java devem ser arquivos com sufixo .java e a classe principal deve ter o mesmo
nome do arquivo fonte; solues na linguagem Python2 devem ser arquivos com sufixo .py2 ;
solues na linguagem Python3 devem ser arquivos com sufixo .py3 ; e solues na linguagem
Javascript devem ter arquivos com sufixo .js. Para problemas diferentes voc pode escolher
trabalhar com linguagens diferentes, mas apenas uma soluo, em uma nica linguagem, deve
ser submetida para cada problema.
Ao final da prova, para cada soluo que voc queira submeter para correo, copie o arquivo
fonte para o seu diretrio de trabalho ou pen-drive, conforme especificado pelo seu professor.
No utilize arquivos para entrada ou sada. Todos os dados devem ser lidos da entrada padro
(normalmente o teclado) e escritos na sada padro (normalmente a tela). Utilize as funes
padro para entrada e sada de dados:
em Pascal: readln, read, writeln, write;
em C: scanf, getchar, printf, putchar ;
em C++: as mesmas de C ou os objetos cout e cin.
em Java: qualquer classe ou funo padro, como por exemplo Scanner, BufferedReader,
BufferedWriter e System.out.println
em Python2 ou Python3: read,readline,readlines,input,print,write
em Javascript: scanf, printf
Procure resolver o problema de maneira eficiente. Na correo, eficincia tambm ser levada em conta. As solues sero testadas com outras entradas alm das apresentadas como
exemplo nas tarefas.

Olimpada Brasileira de Informtica OBI2016

Plantao de morango
Nome do arquivo: morango.c, morango.cpp, morango.pas, morango.java, morango.js,
morango.py2 ou morango.py3

Os administradores da Fazenda Fartura planejam criar uma nova plantao de morangos, no formato
retangular. Eles tm vrios locais possveis para a nova plantao, com diferentes dimenses de
comprimento e largura. Para os administradores, o melhor local aquele que tem a maior rea.
Eles gostariam de ter um programa de computador que, dadas as dimenses de dois locais, determina
o que tem maior rea. Voc pode ajud-los?

Entrada
A entrada contm quatro linhas, cada uma contendo um nmero inteiro. As duas primeiras linhas
indicam as dimenses (comprimento e largura) de um dos possveis locais. As duas ltimas linhas
indicam as dimenses (comprimento e largura) de um outro possvel local para a plantao de
morangos. As dimenses so dadas em metros.

Sada
Seu programa deve escrever uma linha contendo um nico inteiro, a rea, em metros quadrados, do
melhor local para a plantao, entre os dois locais dados na entrada.

Restries
1 comprimento 100
1 largura 100

Exemplos
Entrada

Sada

30
8
11
56

616

Entrada

Sada

12
38
5
20

456

Olimpada Brasileira de Informtica OBI2016

Jogo de par ou mpar


Nome do arquivo: jogo.c, jogo.cpp, jogo.pas, jogo.java, jogo.js, jogo.py2 ou jogo.py3
Dois amigos, Alice e Bob, esto jogando um jogo muito simples, em que um deles grita ou par
ou mpar e o outro imediatamente responde ao contrrio, respectivamente mpar ou par. Em
seguida, ambos exibem ao mesmo tempo uma mo cada um, em que alguns dedos esto estendidos
e outros dobrados. Ento eles contam o nmero total de dedos estendidos. Se a soma for par, quem
gritou par ganha. Se a soma for mpar, quem gritou mpar ganha.
Por exemplo, suponhamos que a Alice gritou par e o Bob respondeu mpar. Em seguida, Alice
no deixou nenhum dos seus dedos estendidos, ao passo que Bob deixou trs dedos estendidos. A
soma ento trs, que mpar, portanto Bob ganhou.
Seu programa deve determinar quem ganhou, tendo a informao de quem gritou par e o nmero
de dedos estendidos de cada um.

Entrada
A entrada contm trs linhas, cada uma com um nmero inteiro, P , D1 e D2 , nesta ordem. Se
P = 0 ento Alice gritou par, ao passo que se P = 1 ento Bob gritou par. Os nmeros D1 e D2
indicam, respectivamente, o nmero de dedos estendidos da Alice e do Bob.

Sada
Seu programa dever imprimir uma nica linha, contendo um nico nmero inteiro, que deve ser 0
se Alice foi a ganhadora, ou 1 se Bob foi o ganhador.

Restries
P = 0 ou P = 1
0 D1 5
0 D2 5

Exemplos
Entrada

Sada

0
0
3

Entrada

Sada

1
0
3

Entrada

Sada

0
1
5

Olimpada Brasileira de Informtica OBI2016

Lmpadas
Nome do arquivo: lampadas.c, lampadas.cpp, lampadas.pas, lampadas.java, lampadas.js,
lampadas.py2 ou lampadas.py3

Voc est de volta em seu hotel na Tailndia depois de um dia de mergulhos. O seu quarto tem
duas lmpadas. Vamos cham-las de A e B. No hotel h dois interruptores, que chamaremos de I1
e I2 . Ao apertar I1 , a lmpada A troca de estado, ou seja, acende se estiver apagada e apaga se
estiver acesa. Se apertar I2 , ambas as lmpadas A e B trocam de estado.
As lmpadas inicialmente esto ambas apagadas. Seu amigo resolveu bolar um desafio para voc.
Ele ir apertar os interruptores em uma certa sequncia, e gostaria que voc respondesse o estado
final das lmpadas A e B.

Entrada
A primeira linha contm um nmero N que representa quantas vezes seu amigo ir apertar algum
interruptor. Na linha seguinte seguiro N nmeros, que pode ser 1, se o interruptor I1 foi apertado,
ou 2, se o interruptor I2 foi apertado.

Sada
Seu programa deve imprimir dois valores, em linhas separadas.
Na primeira linha, imprima 1 se a lmpada A estiver acesa no final das operaes e 0 caso contrrio.
Na segunda linha, imprima 1 se a lmpada B estiver acesa no final das operaes e 0 caso contrrio.

Restries
1 N 105

Informaes sobre a pontuao


Em um conjunto de casos de teste equivalente a 20 pontos, N = 3.

Exemplos
Entrada

Sada

3
1 2 2

1
0

Entrada

Sada

4
2 1 2 2

0
1

Das könnte Ihnen auch gefallen