SPOJ Brasil

Problem hidden
This problem was hidden by Editorial Board member probably because it has incorrect language version or invalid test data, or description of the problem is not clear.

SPOJ Problem Set (sulamericana)

2924. Baixe as trincas

Problema: TRINCAS

Os habitantes de uma pequena ilha caribenha na região conhecida como Triângulo das Bermudas adoram gastar suas noites quentes de verão jogando cartas. Como um tributo para a região onde moram, todos seus jogos de cartas têm alguma conexão com triângulos. Um dos jogos mais populares na ilha é conhecido como Trincas, e tem regras bem simples.

O jogo é jogado entre dois amigos, com um baralho de cartas padrão. As cartas são distingüidas apenas por seus valores, de 1 (Ás) a 13 (Rei). As cartas são embaralhadas e colocadas em uma pilha no centro da mesa, viradas para baixo. Essa pilha é chamada de pilha. Os dois jogadores jogam em turnos. A cada turno, um jogador

• saca a carta do topo da pilha, adicionando ela para sua mão; e

• decide se ele/ela quer “baixar algumas trincas”.

Baixar uma trinca consiste de escolher três cartas (uma trinca) da mão e colocar elas na mesa, viradas para cima. Os trios baixados permanecem na mesa até o fim do jogo. Somente algumas combinações de cartas formam uma trinca válida. Existem dois tipos de trincas válidas:

• Trincas perfeitas são compostas de três cartas cujos valores representam os lados de um triângulo equilátero;

• Trincas comuns são compostas de três cartas cujos valores representam os lados de um triângulo não equilátero.

A figura abaixo mostra exemplos de trincas perfeitas (a), trincas comuns (b), e trincas inválidas (c).

Somente trincas válidas podem ser baixadas, mas um jogador pode baixar um número qualquer de trincas em um dado turno. Em particular, já que os jogadores sabem o número de cartas na pilha a cada turno, um jogador pode decidir baixar todas as trincas em seu último turno. Alguns jogadores, no entanto, normalmente baixam algumas trincas durante o jogo, para manter o mínimo de cartas possíveis em suas mãos.

O jogo acaba quando a pilha está vazia. O vencedor é o jogador que baixou o maior número de trincas perfeitas. Se os dois jogadores baixaram o mesmo número de trincas perfeitas, o vencedor é o jogador que baixou o maior número de trincas comuns. Se os dois jogadores baixaram o mesmo número de trincas perfeitas e o mesmo número de trincas comuns, o resultado é um empate.

Dada a descrição de cartas na pilha, escreva um programa que determina o vencedor de um jogo de Trincas, considerando que os dois jogadores jogam da melhor maneira possível.

Entrada

A entrada contém vários casos de teste. A primeira linha contém um inteiro N representando o número de cartas na pilha (6 <= N <= 10^4). A próxima linha contém N inteiros Xi, separados por espaço, representando as cartas na pilha (1 <= Xi <= 13, para 1 <= i <= N). As cartas são dadas na ordem que são sacadas pelos jogadores: a primeira carta da entrada (X1) é a primeira carta sacada, a segunda carta da entrada (X2) é a segunda carta sacada, e assim por diante. Várias cartas com o mesmo valor podem estar presentes na pilha, e não necessariamente todos os valores de cartas estão presentes na pilha. O final da entrada é dado por N = 0.

Saída

Para cada caso de teste seu programa devem imprimir uma única linha, contendo '1' se o primeiro jogador ganhar, '2' se o segundo jogador ganhar, ou '0' se tiver um empate.

Exemplo

Entrada
7
5 6 5 6 5 6 8
12
13 13 13 13 13 13 1 3 2 9 3 9
12
1 2 1 2 1 2 3 1 4 2 5 3
0

Saída
0
2
1

Adicionado por:Wanderley Guimarães
Data:2008-08-09
Tempo limite:3s
Tamanho do fonte:50000B
Linguagem permitida:Todas exceto: AWK CLOJ ERL F# GO JS PERL 6 SCALA SED TCL
Origem:Final Sul-Americana da Maratona de Programação da ACM 2007

SPOJ System © 2012 Sphere Research Labs | Projekty informatyczne i aplikacje na zamówienie. All Rights Reserved.