Submeter | Todas submissőes | Melhores | Voltar |
RELATORI - Recuperação de relatórios |
No fim da semana, John pediu para Mary enviar para ele um relatório de vendas urgente. Mary estava apressada porque ela estava saindo de férias. Ela então copiou e colou a folha de vendas em um email, enviando-o para John e foi embora. Ela não queria ser pertubada com assuntos de trabalho, por isso ela foi embora sem contar para ninguém onde ele estaria. Ela anunciou simplesmente que não estaria disponível nas próximas duas semanas, desligou seu celular, e saiu.
Quando John recebeu a messagem ele percebeu que o relatório não tinha
nenhum espaço!!! Ele sabia que o relatório deveria ter uma linha
de cabeçalho com os códigos dos produtos da forma P1, P2, ... , PN e
a palavras Totals
no fim. Então haveriam muitas linhas reportando as vendas
de produtos para os diferentes vendedores do escritórios de Mary.
Cada vendedor era identificado com um nome composto por uma palavra
(somente caracteres alfabéticos). A linha correspondente a um vendedor deveria começar com o nome dele/dela,
seguido pelo número de produtos vendidos, de acordo com as colunas do relatório.
A última linha do relatório deveria começar com duas letras TP seguido pelos totais de cada coluna no relatório
(claro, nenhum nome de vendedor começava com as letras TP). John sabia que não existia nenhum
número negativo no relatório, uma quantidade zero era relatada com um simples 0,
e não haviam zeros à esquerda quando era relatado uma quantidade positiva.
Neste ponto, John decidiu reconstruir o relatório de Mary. Ele sabia que deveria haver mais de um resultado possível, mas ele queria poder fazer algo com a primeira solução consistente que ele pudesse encontrar (talvez ele pudesse corrigir algum erro quando Mary voltasse).
Você poderia ajudar John com a recuperação do relatório de vendas de Mary?
Entrada
A entrada consiste de muitos casos de teste. A primeira linha
de um caso de teste contém um inteiro C especificando o numero
de casos de teste. A primeira linha de um relatório é uma linha
de cabeçalho, contendo o código dos produtos P1, P2, ... PN e
a palavra Totals
, como descrito anteriormente. A numeração dos
produtos nesta linha de cabeçalho é consecutiva, de 1 até N, com
1<=N<=15. Então existirá um número de linhas, cada uma representando
uma linha do relatório, como descrito anteriormente. A última linha do
relatório inicia com as letras TP e tem o formato descrito anteriormente.
Considere que cada vendedor vendeu menos do que 1000 unidades de cada produto.
Não existem mais do que 4 vendedores em cada caso. Cada nome de vendedor
não excederá 10 caracteres (Somente caracteres minúsculos e maiúsculos).
Saída
Para cada caso de teste na entrada seu programa deve produzir um possivel relatório de Mary. Cada linha da resposta de estar alinhada a esquerda, com seus itens separados por um espaço em branco, e com nenhum espaço no fim.
Exemplo de entrada 2 P1P2P3Totals Amanda121100131 Charles5141772 Monique14121238 TP1862629241 P1P2Totals Ingrid9519851936 Candid49212504 Peter10313 Camila000 TP145310002453
Exemplo de saída P1 P2 P3 Totals Amanda 121 10 0 131 Charles 51 4 17 72 Monique 14 12 12 38 TP 186 26 29 241 P1 P2 Totals Ingrid 951 985 1936 Candid 492 12 504 Peter 10 3 13 Camila 0 0 0 TP 1453 1000 2453
Adicionado por: | Wanderley Guimarăes |
Data: | 2008-12-27 |
Tempo limite: | 1.305s |
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: | Final Sul-Americana da Maratona de Programação da ACM 2006 |
hide comments
2010-04-30 05:45:30 Felipe de Moraes Modesto [UnB]
A especificaçăo é cheia de detalhes. a historia contém detalhes de implementaçăo importantes. Last edit: 2010-04-30 19:37:55 |