Anda di halaman 1dari 3

!"#$#%&' !"#!"#$ !

!" $%&'&()* +,-+.+-/&( */ 01 -/2(&3 .&(0,-* !4 2*,5*6 78 ! 095%&:


;" <,5%0=& 20(* >?@ &5A * -+& !BC!!C;4!D &6 ;DEFG)
D" H'I05+.*
C ob[eLlvo desLe Lrabalho e esLlmular ao aluno a parLlclpar de maraLonas de programao e capaclLa-lo
a resolver problemas dessas maraLonas.
J" K0=%&6
Cada grupo deve escolher um dos dols problemas em anexo para resolver. um dos lnLegranLes deve se
cadasLrar no slLe SC! 8rasll e posLar a sua soluo. Se o programa passar no SC!, slgnlflca que a sua
soluo esL correLa e o aluno Ler dlrelLo a 1 ponLo exLra, alem da avallao do Lrabalho pelos
professores.
F" L*M/10,5&NO*
A documenLao do Lrabalho deve conLer, ao mxlmo, 4 folhas, lnclulndo elemenLos no- LexLuals
como capa, sumrlo, flguras, Labelas e refernclas. A documenLao deve ser organlzada e mosLrar
claramenLe os segulnLes Lplcos:
uescrlo do problema: apresenLar qual o problema a ser LraLado
lmplemenLao: descrever o algorlLmo uLlllzado bem como as prlnclpals esLruLuras de dados
Anllse de Complexldade: apresenLar a anllse de complexldade em funo do Lempo na
noLao C
1esLes: apresenLar o con[unLo de LesLes que valldam a soluo
Concluso: apresenLar os ganhos e dlflculdades no Lrabalho de forma clara e deLalhada
8efernclas blbllogrflcas: refernclas uLlllzadas no desenvolvlmenLo do Lrabalho
! #$%&'()*%&# ( +)&,&-(./# 0# )123,()1 0&43#5671, 5# 89:; <4)1 = # 2142# )123,()1 +)&,&-(0# 3(%(
>%($(,?# 01 @#5A,+4/# 01 @+%4#; <5)/# (3%#71&)12 3(%( 41 (A#4)+2(%12 A#2 1,1;

Andrea, Carlos e Marcelo so muito amigos e passam todos os finais de semana beira da
piscina. Enquanto Andrea se bronzeia ao sol, os dois ficam jogando Bolhas. Andrea, uma
cientista da computao muito esperta, j disse a eles que no entende por que passam
tanto tempo jogando um jogo to primrio.
Usando o computador porttil dela, os dois geram um inteiro aleatrio N e uma seqncia
de inteiros, tambm aleatria, que uma permutao de 1, 2, . . . , N.
O jogo ento comea, cada jogador faz um movimento, e a jogada passa para o outro
jogador. Marcelo sempre o primeiro a comear a jogar.
Um movimento de um jogador consiste na escolha de um par de elementos consecutivos
da seqncia que estejam fora de ordem e em inverter a ordem dos dois elementos. Por
exemplo, dada a seqncia 1, 5, 3, 4, 2, o jogador pode inverter as posies de 5 e 3
ou de 4 e 2, mas no pode inverter as posioes de 3 e 4, nem de 5 e 2. Continuando com
o exemplo, se o jogador decide inverter as posies de 5 e 3 ento a nova seqncia
ser 1, 3, 5, 4, 2. Mais cedo ou mais tarde, a seqncia ficar ordenada. Perde o
jogador impossibilitado de fazer um movimento.
Andrea, com algum desdm, sempre diz que seria mais simples jogar cara ou coroa, com
o mesmo efeito. Sua misso, caso decida aceit-la, determinar quem ganha o jogo, dada
a seqncia inicial.
Entrada
A entrada contm vrios casos de teste. Os dados de cada caso de teste esto numa nica
linha, e so inteiros separados por um espao em branco. Cada linha contm um
inteiro N, 2 <= N <= 10^5, seguido da seqncia inicial P = (X1 , X2 , . . . , XN
) de N inteiros distintos dois a dois, onde 1 <= Xi <= N para 1 <= i <= N. O final da
entrada indicado por uma linha que contm apenas o nmero zero.
Sada
Para cada caso de teste da entrada seu programa deve imprimir uma nica linha, com o
nome do vencedor, igual a Carlos ou a Marcelo, sem espaos em branco.
Exemplo
Entrada:

5 1 5 3 4 2
5 5 1 3 4 2
5 1 2 3 4 5
6 3 5 2 1 4 6
5 5 4 3 2 1
6 6 5 4 3 2 1
0
Sada

Marcelo
Carlos
Carlos
Carlos
Carlos
Marcelo

Projeto de Algoritmos
SPOJ Problem Set (seletivas)
3241. Bolhas e baldes
Problema: BALDES

Manuel quer ficar rico rpido e sem muito esforo, ento ele decidiu fazer carreira
apostando. Inicialmente, ele planeja estudar os ganhos e as perdas de jogadores,
de modo que ele possa identificar padres de vitrias consecutivas e elaborar uma
estratgia que seja sempre vencedora. Contudo, Manuel, to esperto como ele acha
que , no sabe como programar computadores, de modo que ele contratou voc
para escrever programas que iro auxili-lo a elaborar a estratgia dele.
Sua primeira tarefa escrever um programa que identifica o mximo ganho
possvel de uma seqncia de apostas. Uma aposta uma quantia de dinheiro e
ou vencedora (e isto registrado como um valor positivo), ou perdedora (e isto
registrado como um valor negativo).
Entrada
Um conjunto de entrada consiste de um inteiro positivo N ! 10000, que indica o
tamanho da seqncia, seguido por N inteiros. Cada aposta um inteiro maior ou
igual a 0 e menor ou igual a 1000.
A entrada terminada por N = 0.
Sada
Para cada conjunto de entrada, a sada dever mostrar uma linha com a soluo
correspondente. Se a seqncia de entrada no apresenta possibilidade de ganhar
dinheiro, ento a sada a mensagem"Losing streak.".
Exemplo
Entrada:
5
12 -4
-10 4
9
3
-2 -1 -2
0















Sada:
The maximum winning streak is
13.
Losing streak.
Projeto de Algoritmos
SPOJ Problem Set (seletivas)
1821. O Bolo de Apostas
Problema: BAPOSTAS