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 (regionais)

3246. Vampiros

Problema: VAMPIROS

Felipinho está empolgado com seu novo jogo de RPG sobre guerras entre clãs de vampiros. Nesse jogo ele representa um personagem de um vampiro e constantemente entra em conflito contra vampiros de outros clãs. Tais batalhas são realizadas com base nas características de cada personagem envolvido e com a ajuda de um dado comum de seis faces.

Por simplicidade, vamos considerar apenas as lutas entre dois vampiros, vampiro 1 e vampiro 2. Cada um possui uma energia vital (chamaremos de EV1 e EV2 respectivamente) e, além disso, são determinadas uma força de ataque AT e uma capacidade de dano D.

O combate é realizado em turnos da maneira descrita a seguir. A cada turno um dado é rolado, se o valor obtido for menor do que ou igual a AT , o vampiro 1 venceu o turno, caso contrário o vampiro 2 é quem venceu. O vencedor suga energia vital do adversário igual ao valor D, ou seja, D pontos de EV são diminuídos do perdedor e acrescentados ao vencedor. O combate segue até que um dos vampiros fique com EV igual a ou menor do que zero.

Por exemplo, suponhamos que EV1 = 7, EV2 = 5, AT = 2, D = 4. Rola-se o dado e o valor obtido foi 3. Nesse caso, o vampiro 2 venceu o turno e, portanto, 4 pontos de EV são diminuídos do vampiro 1 e acrescentados ao vampiro 2. Sendo assim, os novos valores seriam EV1 = 3 e EV2 = 9. Observe que se no próximo turno o vampiro 2 ganhar novamente, o combate irá terminar.

Os valores de AT e D são constantes durante todo o combate, apenas EV1 e EV2 variam.

Apesar de gostar muito do jogo, Felipinho acha que os combates estão muito demorados e e gostaria de conhecer de antemão a probabilidade de vencer, para saber se vale a pena lutar. Assim, ele pediu que você escrevesse um programa que, dados os valores iniciais de EV1 , EV2 , além de AT e D, calculasse a probabilidade de o vampiro 1 vencer o combate.

Entrada

A entrada contém vários casos de teste. Cada caso de teste ocupa uma única linha, com os quatro inteiros EV1, EV2, AT e D separados por um espaço em branco (1 <= EV1, EV2 <= 10, 1 <= AT <= 5 e 1 <= D <= 10).

O final da entrada é indicado por uma linha contendo quatro zeros.

Saída

Para cada caso de teste da entrada seu programa deve imprimir uma única linha. A linha deve conter apenas um número real, escrito com precisão de uma casa decimal, representando, em termos de percentagem, a probabilidade de o vampiro 1 vencer o combate.

Exemplo

Entrada
1 1 3 1            
1 2 1 1            
8 5 3 1            
7 5 2 4            
0 0 0 0

Saída
50.0
3.2
61.5
20.0

Adicionado por:Wanderley Guimarães
Data:2008-10-25
Tempo limite:2s
Tamanho do fonte:50000B
Linguagem permitida:Todas exceto: AWK CLOJ ERL F# GO JS PERL 6 SCALA SED TCL
Origem:Primeira fase da Maratona de Programação - 2008

hide comments
2012-03-01 15:52:41 João Paulo Constantino [FIC-MG]


Last edit: 2012-03-01 15:52:55
SPOJ System © 2012 Sphere Research Labs | Projekty informatyczne i aplikacje na zamówienie. All Rights Reserved.