SlideShare uma empresa Scribd logo
1 de 5
Baixar para ler offline
OBI2012
Caderno de Tarefas
Modalidade Programação • Nível Júnior, Fase 1
14 de abril de 2012
A PROVA TEM DURAÇÃO DE 3 HORAS
Promoção:
Patrocínio:
v1.0
Olimpíada Brasileira de Informática – OBI2012 1
Instruções
LEIA ATENTAMENTE ESTAS INSTRUÇÕES ANTES DE INICIAR A PROVA
• Este caderno de tarefas é composto por 4 páginas (não 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, anotações ou qualquer outro material durante a prova. É permitida
a consulta ao help do ambiente de programação se este estiver disponível.
• As tarefas têm o mesmo valor na correção.
• A correção é automatizada, portanto siga atentamente as exigências da tarefa quanto ao formato da
entrada e saída de seu programa.
• Não implemente nenhum recurso gráfico nas suas soluções (janelas, menus, etc.), nem utilize qualquer
rotina para limpar a tela ou posicionar o cursor.
• As tarefas não estão ordenadas, neste caderno, por ordem de dificuldade; procure resolver primeiro as
questões mais fáceis.
• Preste muita atenção no nome dos arquivos fonte indicados nas tarefas. Soluções na linguagem C devem
ser arquivos com sufixo .c; soluções na linguagem C++ devem ser arquivos com sufixo .cc ou .cpp; soluções
na linguagem Pascal devem ser arquivos com sufixo .pas; soluções na linguagem Java devem ser arquivos
com sufixo .java e a classe principal deve ter o mesmo nome do arquivo fonte; e soluções na linguagem
Python devem ser arquivos com sufixo .py. Para problemas diferentes você pode escolher trabalhar com
linguagens diferentes, mas apenas uma solução, em uma única linguagem, deve ser submetida para cada
problema.
• Ao final da prova, para cada solução que você queira submeter para correção, copie o arquivo fonte para
o seu diretório de trabalho ou disquete, conforme especificado pelo seu professor.
• Não utilize arquivos para entrada ou saída. Todos os dados devem ser lidos da entrada padrão (normal-
mente é o teclado) e escritos na saída padrão (normalmente é a tela). Utilize as funções padrão para
entrada e saída 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 função padrão, como por exemplo Scanner, BufferedReader, Buffered-
Writer e System.out.println
– em Python: read,readline,readlines,print,write
• Procure resolver o problema de maneira eficiente. Na correção, eficiência também será levada em conta.
As soluções serão testadas com outras entradas além das apresentadas como exemplo nas tarefas.
Olimpíada Brasileira de Informática – OBI2012 2
Campeonato
Nome do arquivo fonte: campeonato.c, campeonato.cpp, campeonato.pas, campeonato.java, ou
campeonato.py
Dois times, Cormengo e Flaminthians, participam de um campeonato de futebol, juntamente com outros times.
Cada vitória conta três pontos, cada empate um ponto. Fica melhor classificado no campeonato um time que
tenha mais pontos. Em caso de empate no número de pontos, fica melhor classificado o time que tiver maior
saldo de gols. Se o número de pontos e o saldo de gols forem os mesmos para os dois times então os dois times
estão empatados no campeonato.
Dados os números de vitórias e empates, e os saldos de gols dos dois times, sua tarefa é determinar qual dos
dois está melhor classificado, ou se eles estão empatados no campeonato.
Entrada
A entrada é descrita em uma única linha, que contém seis inteiros, separados por um espaço em branco:
Cv, Ce, Cs, Fv, Fe, Fs, que são, respectivamente, o número de vitórias do Cormengo, o número de empates do
Cormengo, o saldo de gols do Cormengo, o número de vitórias do Flaminthians, o número de empates do
Flaminthians e o saldo de gols do Flaminthians.
Saída
Seu programa deve imprimir uma única linha. Se Cormengo é melhor classificado que Flaminthians, a linha
deve conter apenas a letra ‘C’; se Flaminthians é melhor classificado que Cormengo, a linha deve conter apenas
a letra ‘F’; e se os dois times estão empatados a linha deve conter apenas o caractere ‘=’.
Restrições
• 0 ≤ Cv, Ce, Fv, Fe ≤ 100
• −1000 ≤ Cs, Fs ≤ 1000
Exemplos
Entrada
10 5 18 11 1 18
Saída
C
Entrada
10 5 18 11 2 18
Saída
=
Entrada
9 5 -1 10 2 10
Saída
F
Olimpíada Brasileira de Informática – OBI2012 3
Busca na Internet
Nome do arquivo fonte: busca.c, busca.cpp, busca.pas, busca.java, ou busca.py
João fez uma pesquisa em seu site de busca predileto, e encontrou a resposta que estava procurando no terceiro
link listado. Além disso, ele viu, pelo site, que t pessoas já haviam clicado neste link antes. João havia lido
anteriormente, também na Internet, que o número de pessoas que clicam no segundo link listado é o dobro de
número de pessoas que clicam no terceiro link listado. Nessa leitura, ele também descobriu que o número de
pessoas que clicam no segundo link é a metade do número de pessoas que clicam no primeiro link.
João está intrigado para saber quantas pessoas clicaram no primeiro link da busca, e, como você é amigo dele,
quer sua ajuda nesta tarefa.
Entrada
Cada caso de teste possui apenas um número, t, que representa o número de pessoas que clicaram no terceiro
link da busca.
Saída
Para cada caso de teste imprima apenas uma linha, contendo apenas um inteiro, indicando quantas pessoas
clicaram no primeiro link, nessa busca.
Restrições
• 1 ≤ t ≤ 1000
Exemplos
Entrada
2
Saída
8
Entrada
25
Saída
100
Olimpíada Brasileira de Informática – OBI2012 4
Desafio do maior número
Nome do arquivo fonte: maior.c, maior.cpp, maior.pas, maior.java, ou maior.py
Leonardo é um garoto muito criativo. Ele adora criar desafios para seus colegas da escola. Seu último desafio é
o seguinte: diversos números são ditos em voz alta, quando o número 0 (zero) é dito então o desafio termina e
seus colegas devem dizer imediatamente qual foi o maior número. Leonardo tem muita dificuldade de verificar
se a resposta dada pelos colegas é correta ou não, pois a sequência de números costuma ser longa. Por este
motivo, ele resolveu pedir sua ajuda.
Sua tarefa é escrever um programa que dada uma sequência de números inteiros positivos terminada por 0
(zero), imprime o maior número da sequência.
Entrada
A entrada é dada em uma única linha contendo uma sequência de números inteiros positivos. O último número
da linha é 0 (zero).
Saída
Seu programa deve imprimir o maior número dentre os números da entrada.
Restrições
• 1 ≤ tamanho da sequência ≤ 100.
• 1 ≤ número da sequência ≤ 1000.
Exemplos
Entrada
10 30 20 5 0
Saída
30
Entrada
99 1000 55 1 2 9 0
Saída
1000

Mais conteúdo relacionado

Semelhante a OBI2012 Caderno de Tarefas

Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosMario Jorge Pereira
 
Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1engenhariadecomputacao
 
Implementacao de Algoritmos.ppt
 Implementacao de Algoritmos.ppt Implementacao de Algoritmos.ppt
Implementacao de Algoritmos.pptTopsAvakinImvu
 
ALG 01 - Implementacao de Algoritmos.ppt
ALG 01 - Implementacao de Algoritmos.pptALG 01 - Implementacao de Algoritmos.ppt
ALG 01 - Implementacao de Algoritmos.pptRogrioRikerSantana
 
ALG 01 - Implementacao de Algoritmos.ppt
ALG 01 - Implementacao de Algoritmos.pptALG 01 - Implementacao de Algoritmos.ppt
ALG 01 - Implementacao de Algoritmos.pptFabio Faria
 
Lógica de Programação - Unimep/Pronatec - Aula02
Lógica de Programação - Unimep/Pronatec - Aula02Lógica de Programação - Unimep/Pronatec - Aula02
Lógica de Programação - Unimep/Pronatec - Aula02André Phillip Bertoletti
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em pptAndrei Bastos
 
Olimpiadas Programação: O que, Por que e Como?
Olimpiadas Programação: O que, Por que e Como?Olimpiadas Programação: O que, Por que e Como?
Olimpiadas Programação: O que, Por que e Como?Alexandre Duarte
 

Semelhante a OBI2012 Caderno de Tarefas (20)

02 while
02 while02 while
02 while
 
Pj 2010 pneu_sedex
Pj 2010 pneu_sedexPj 2010 pneu_sedex
Pj 2010 pneu_sedex
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e Algoritmos
 
TWP40 Revisão Geral 3
TWP40 Revisão Geral 3TWP40 Revisão Geral 3
TWP40 Revisão Geral 3
 
Sedex
SedexSedex
Sedex
 
Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1
 
Ci171 intro
Ci171 introCi171 intro
Ci171 intro
 
Implementacao de Algoritmos.ppt
 Implementacao de Algoritmos.ppt Implementacao de Algoritmos.ppt
Implementacao de Algoritmos.ppt
 
ALG 01 - Implementacao de Algoritmos.ppt
ALG 01 - Implementacao de Algoritmos.pptALG 01 - Implementacao de Algoritmos.ppt
ALG 01 - Implementacao de Algoritmos.ppt
 
ALG 01 - Implementacao de Algoritmos.ppt
ALG 01 - Implementacao de Algoritmos.pptALG 01 - Implementacao de Algoritmos.ppt
ALG 01 - Implementacao de Algoritmos.ppt
 
Conta de água e pedágio
Conta de água e pedágioConta de água e pedágio
Conta de água e pedágio
 
Lógica de Programação - Unimep/Pronatec - Aula02
Lógica de Programação - Unimep/Pronatec - Aula02Lógica de Programação - Unimep/Pronatec - Aula02
Lógica de Programação - Unimep/Pronatec - Aula02
 
01 variaveis io if
01 variaveis io if01 variaveis io if
01 variaveis io if
 
TWP05 Variáveis e Entrada de Dados
TWP05 Variáveis e Entrada de DadosTWP05 Variáveis e Entrada de Dados
TWP05 Variáveis e Entrada de Dados
 
Python for zombies (very basic level)
Python for zombies (very basic level)Python for zombies (very basic level)
Python for zombies (very basic level)
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em ppt
 
Olimpiadas Programação: O que, Por que e Como?
Olimpiadas Programação: O que, Por que e Como?Olimpiadas Programação: O que, Por que e Como?
Olimpiadas Programação: O que, Por que e Como?
 
Rumo à Certificação PHP
Rumo à Certificação PHPRumo à Certificação PHP
Rumo à Certificação PHP
 
LP1 P01 - Python.pdf
LP1 P01 - Python.pdfLP1 P01 - Python.pdf
LP1 P01 - Python.pdf
 
Python + algoritmo
Python + algoritmoPython + algoritmo
Python + algoritmo
 

Mais de Thiago Luis Colozio Casácio (20)

Ti nas organizações e wms
Ti nas organizações e wmsTi nas organizações e wms
Ti nas organizações e wms
 
Ti nas organizações e wms
Ti nas organizações e wmsTi nas organizações e wms
Ti nas organizações e wms
 
Questões wallmart
Questões wallmartQuestões wallmart
Questões wallmart
 
Estudo de caso wal mart
Estudo de caso wal martEstudo de caso wal mart
Estudo de caso wal mart
 
Banco de dados [ aula 2 ]
Banco de dados [ aula 2 ]Banco de dados [ aula 2 ]
Banco de dados [ aula 2 ]
 
Erp
ErpErp
Erp
 
Material
MaterialMaterial
Material
 
P r o j e t o
P r o j e t oP r o j e t o
P r o j e t o
 
Estrutura condicional
Estrutura condicionalEstrutura condicional
Estrutura condicional
 
Apostila hdw
Apostila hdwApostila hdw
Apostila hdw
 
Lab inf 1_ aula_4
Lab  inf 1_ aula_4Lab  inf 1_ aula_4
Lab inf 1_ aula_4
 
Lab inf 1_ aula_3
Lab  inf 1_ aula_3Lab  inf 1_ aula_3
Lab inf 1_ aula_3
 
C++
C++C++
C++
 
Fontes e no break
Fontes e no breakFontes e no break
Fontes e no break
 
Apostila complementar
Apostila complementarApostila complementar
Apostila complementar
 
1 2 fontes_estab_gab_nobreak
1 2  fontes_estab_gab_nobreak1 2  fontes_estab_gab_nobreak
1 2 fontes_estab_gab_nobreak
 
Estudo de caso wal mart
Estudo de caso wal martEstudo de caso wal mart
Estudo de caso wal mart
 
Lógica da programação
Lógica da programaçãoLógica da programação
Lógica da programação
 
Lógica da programação
Lógica da programaçãoLógica da programação
Lógica da programação
 
5s
5s5s
5s
 

OBI2012 Caderno de Tarefas

  • 1. OBI2012 Caderno de Tarefas Modalidade Programação • Nível Júnior, Fase 1 14 de abril de 2012 A PROVA TEM DURAÇÃO DE 3 HORAS Promoção: Patrocínio: v1.0
  • 2. Olimpíada Brasileira de Informática – OBI2012 1 Instruções LEIA ATENTAMENTE ESTAS INSTRUÇÕES ANTES DE INICIAR A PROVA • Este caderno de tarefas é composto por 4 páginas (não 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, anotações ou qualquer outro material durante a prova. É permitida a consulta ao help do ambiente de programação se este estiver disponível. • As tarefas têm o mesmo valor na correção. • A correção é automatizada, portanto siga atentamente as exigências da tarefa quanto ao formato da entrada e saída de seu programa. • Não implemente nenhum recurso gráfico nas suas soluções (janelas, menus, etc.), nem utilize qualquer rotina para limpar a tela ou posicionar o cursor. • As tarefas não estão ordenadas, neste caderno, por ordem de dificuldade; procure resolver primeiro as questões mais fáceis. • Preste muita atenção no nome dos arquivos fonte indicados nas tarefas. Soluções na linguagem C devem ser arquivos com sufixo .c; soluções na linguagem C++ devem ser arquivos com sufixo .cc ou .cpp; soluções na linguagem Pascal devem ser arquivos com sufixo .pas; soluções na linguagem Java devem ser arquivos com sufixo .java e a classe principal deve ter o mesmo nome do arquivo fonte; e soluções na linguagem Python devem ser arquivos com sufixo .py. Para problemas diferentes você pode escolher trabalhar com linguagens diferentes, mas apenas uma solução, em uma única linguagem, deve ser submetida para cada problema. • Ao final da prova, para cada solução que você queira submeter para correção, copie o arquivo fonte para o seu diretório de trabalho ou disquete, conforme especificado pelo seu professor. • Não utilize arquivos para entrada ou saída. Todos os dados devem ser lidos da entrada padrão (normal- mente é o teclado) e escritos na saída padrão (normalmente é a tela). Utilize as funções padrão para entrada e saída 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 função padrão, como por exemplo Scanner, BufferedReader, Buffered- Writer e System.out.println – em Python: read,readline,readlines,print,write • Procure resolver o problema de maneira eficiente. Na correção, eficiência também será levada em conta. As soluções serão testadas com outras entradas além das apresentadas como exemplo nas tarefas.
  • 3. Olimpíada Brasileira de Informática – OBI2012 2 Campeonato Nome do arquivo fonte: campeonato.c, campeonato.cpp, campeonato.pas, campeonato.java, ou campeonato.py Dois times, Cormengo e Flaminthians, participam de um campeonato de futebol, juntamente com outros times. Cada vitória conta três pontos, cada empate um ponto. Fica melhor classificado no campeonato um time que tenha mais pontos. Em caso de empate no número de pontos, fica melhor classificado o time que tiver maior saldo de gols. Se o número de pontos e o saldo de gols forem os mesmos para os dois times então os dois times estão empatados no campeonato. Dados os números de vitórias e empates, e os saldos de gols dos dois times, sua tarefa é determinar qual dos dois está melhor classificado, ou se eles estão empatados no campeonato. Entrada A entrada é descrita em uma única linha, que contém seis inteiros, separados por um espaço em branco: Cv, Ce, Cs, Fv, Fe, Fs, que são, respectivamente, o número de vitórias do Cormengo, o número de empates do Cormengo, o saldo de gols do Cormengo, o número de vitórias do Flaminthians, o número de empates do Flaminthians e o saldo de gols do Flaminthians. Saída Seu programa deve imprimir uma única linha. Se Cormengo é melhor classificado que Flaminthians, a linha deve conter apenas a letra ‘C’; se Flaminthians é melhor classificado que Cormengo, a linha deve conter apenas a letra ‘F’; e se os dois times estão empatados a linha deve conter apenas o caractere ‘=’. Restrições • 0 ≤ Cv, Ce, Fv, Fe ≤ 100 • −1000 ≤ Cs, Fs ≤ 1000 Exemplos Entrada 10 5 18 11 1 18 Saída C Entrada 10 5 18 11 2 18 Saída = Entrada 9 5 -1 10 2 10 Saída F
  • 4. Olimpíada Brasileira de Informática – OBI2012 3 Busca na Internet Nome do arquivo fonte: busca.c, busca.cpp, busca.pas, busca.java, ou busca.py João fez uma pesquisa em seu site de busca predileto, e encontrou a resposta que estava procurando no terceiro link listado. Além disso, ele viu, pelo site, que t pessoas já haviam clicado neste link antes. João havia lido anteriormente, também na Internet, que o número de pessoas que clicam no segundo link listado é o dobro de número de pessoas que clicam no terceiro link listado. Nessa leitura, ele também descobriu que o número de pessoas que clicam no segundo link é a metade do número de pessoas que clicam no primeiro link. João está intrigado para saber quantas pessoas clicaram no primeiro link da busca, e, como você é amigo dele, quer sua ajuda nesta tarefa. Entrada Cada caso de teste possui apenas um número, t, que representa o número de pessoas que clicaram no terceiro link da busca. Saída Para cada caso de teste imprima apenas uma linha, contendo apenas um inteiro, indicando quantas pessoas clicaram no primeiro link, nessa busca. Restrições • 1 ≤ t ≤ 1000 Exemplos Entrada 2 Saída 8 Entrada 25 Saída 100
  • 5. Olimpíada Brasileira de Informática – OBI2012 4 Desafio do maior número Nome do arquivo fonte: maior.c, maior.cpp, maior.pas, maior.java, ou maior.py Leonardo é um garoto muito criativo. Ele adora criar desafios para seus colegas da escola. Seu último desafio é o seguinte: diversos números são ditos em voz alta, quando o número 0 (zero) é dito então o desafio termina e seus colegas devem dizer imediatamente qual foi o maior número. Leonardo tem muita dificuldade de verificar se a resposta dada pelos colegas é correta ou não, pois a sequência de números costuma ser longa. Por este motivo, ele resolveu pedir sua ajuda. Sua tarefa é escrever um programa que dada uma sequência de números inteiros positivos terminada por 0 (zero), imprime o maior número da sequência. Entrada A entrada é dada em uma única linha contendo uma sequência de números inteiros positivos. O último número da linha é 0 (zero). Saída Seu programa deve imprimir o maior número dentre os números da entrada. Restrições • 1 ≤ tamanho da sequência ≤ 100. • 1 ≤ número da sequência ≤ 1000. Exemplos Entrada 10 30 20 5 0 Saída 30 Entrada 99 1000 55 1 2 9 0 Saída 1000