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.|

BOLSA - Bolsa de Valores

Autor: Tiago Mota

Na bolsa de valores da capital de Pindorama são negociadas, diariamente, várias ações de diversas empresas daquela nação.

Para facilitar as negociações, há um sistema que registra as intenções de compra e venda de ações, com seus respectivos valores. Assim, quando alguém deseja comprar ou vender uma ação de alguma empresa, basta informar ao sistema o quanto pretende pagar ou receber por aquela ação.

Ao registrar um novo pedido de compra, o sistema verifica se o valor de compra é maior ou igual ao valor de venda de alguma ação registrada (para venda) no sistema. Caso seja, é debitado o valor de compra da conta do investidor que deseja comprar, é creditado o valor de venda na conta do investidor que deseja vender, e a diferença é repassada à bolsa de valores. O mesmo ocorre no registro de um novo pedido de venda, caso o valor de venda seja menor ou igual ao valor de compra de alguma ação registrada (para compra) no sistema. Caso haja mais de uma possibilidade de realização de compra ou venda, escolhe-se a proposta cujo valor aumenta a diferença que será repassada à bolsa de valores.

O sistema tem registrado, por exemplo, para ações de uma determinada empresa, as seguintes propostas de compra e venda:

Investidor Tipo Valor (em P$)
A Compra 2,00
B Compra 3,00
C Venda 3,50
D Venda 4,00

Como pode-se observar, não há como realizar negócios com as propostas acima, uma vez que não há nenhum valor de compra maior ou igual a nenhum valor de venda.

No entanto, caso o sistema receba uma proposta de venda do investidor E no valor de P$ 2,50, pode-se realizar a compra e venda de ação com o investidor B. Nesse caso, é debitado o valor de P$ 3,00 da conta do investidor B, é creditado o valor de P$ 2,50 na conta do investidor E, e é repassado à bolsa o valor de P$ 0,50, correspondente à diferença entre os valores de compra e venda.

Após isso, caso o sistema receba, por exemplo, uma proposta de compra do investidor F no valor de P$ 4,50, tem-se a opção de realizar a compra e venda de ação tanto com o investidor C quanto com o investidor D. Nesse caso, o sistema opta pelo investidor C, já que este negócio gera uma diferença de P$ 1,00 a ser repassada à bolsa de valores, ao contrário do valor de P$ 0,50 que seria obtido caso a compra e venda de ação fosse dada com o investidor D.

O sistema, porém, não contabiliza os repasses de diferenças à bolsa de valores, o que é feito, atualmente, de forma manual. Uma vez que o volume de operações da bolsa tem crescido preocupantemente, é pedido que você faça um programa que, dadas as propostas de compra e venda registradas no sistema durante o dia, calcule o valor total recebido pela bolsa de valores através dos repasses de diferenças.

Entrada

A entrada contém vários casos de teste. Cada caso de teste é composto por uma lista de propostas de compra e venda de ações de uma determinada empresa em um certo dia, na ordem em que foram registradas no sistema.

A primeira linha da entrada de um caso de teste contém, apenas, o número inteiro n (1 <= n <= 50000), informando a quantidade de propostas de compra e venda de ações processadas pelo sistema naquele dia. A seguir, há n linhas, cada uma composta por uma letra, um espaço e um valor, nesta ordem. Caso a letra seja um C, a linha corresponde a uma proposta de compra. Caso contrário, a letra é um V, de modo que a linha corresponde a uma proposta de venda. Em ambos os casos, o valor v (0,00 < v <= 400,00) é dado com exatamente duas casas decimais, separadas por um ponto (.) da parte inteira, e indica o valor, em P$, da proposta de compra ou venda da ação.

A entrada termina quando n = 0.

Saída

Para cada caso de teste, seu programa deve imprimir, em uma única linha, o valor total, em P$, recebido pela bolsa de valores através dos repasses de diferenças nas negociações de compra e venda de ações dadas na entrada. Você deve assumir que, antes das propostas dadas na entrada, não havia registros de propostas no sistema.

Exemplo

Entrada:
6
C 2.00
C 3.00
V 3.50
V 4.00
V 2.50
C 4.50
3
C 5.00
V 4.00
V 2.00
3
V 4.00
V 2.00
C 5.00
0

Saída:
1.50
1.00
3.00

Adicionado por:Wanderley Guimarăes
Data:2008-07-08
Tempo limite:0.428s
Tamanho do fonte:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Linguagem permitida:Todas exceto: ASM64 CLOJURE ERL FSHARP JS-RHINO PERL6 PY_NBC SCALA TCL
Origem:Segunda prova de TEP - 2008/1 - UFRJ

hide comments
2014-09-05 23:06:01 Alessandro Yamada [UFMS]
Pessoas que estiverem tendo problema com resposta errada(como eu tive). Pode ser algum problema de Arredondamento, tentar usar inteiro.
2012-03-18 18:04:26 Johnny C. Siebeneichler [UNICENTRO]
Realmente há um erro no enunciado, mas felizmente os parágrafos seguintes deixam isso claro.
2012-03-07 01:19:22 Ramon de Oliveira [UDESC]


Last edit: 2012-04-08 18:03:05
2010-10-10 21:09:47 Marco Túlio Gontijo e Silva
Pelo que me parece há um erro no enunciado. O tipo das propostas do investidor C e D deveria ser Venda, năo?
2010-09-15 00:44:02 João Paulo Pereira[UNIVÁS]


Last edit: 2010-09-15 20:07:48
2010-02-25 01:42:49 Rômulo
Mais especificamente, o problema requer uma soluçăo on-line :
Conforme se recebem entradas, deve-se avaliar se é possível efetuar transaçőes.
Se for possível realizar uma transaçăo, ela deve ser executada, mesmo năo trazendo lucro para a bolsa.
2010-02-20 22:37:37 Diego Buchinger [UDESC]
Apenas reforçando porque o enunciado é meio confuso:
Quando se tem uma compra e venda de mesmo valor é necessário vender, mesmo que năo dę lucro para a bolsa.
Exemplo.
3
C 6.00
V 6.00
C 7.00
a saída fica 0.00
porque é feita a venda sem lucros pra bolsa e fica um pedido de compra de 7.00 pendente.
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.