Submeter | Todas submissőes | Melhores | Voltar |
HASHADIQ - Hash |
Neste problema, pede-se para armazenar, gerenciar e buscar por indivíduos definidos por um identificador único (inteiro) e pelas seguintes informações: Primeiro e último nome, data de nascimento e telefone.
Entrada
A entrada será feita por 4 comandos: add, del, info e query. A execução é encerrada com EOF.
O comando ''add'' recebe e armazena todos dados do individuo, e retorna erro se já existir individuo com mesmo identificador.
add <id> <first_name> <last_name> <birtday> <phone_number>
O comando ''del'' remove todos dados relacionados a um determinado identificador, e retorna erro se não existir individuo com o identificador fornecido.
del <id>
O comando ''info'' imprime todos dados de um determinado identificador, e retorna erro se não existir individuo com o identificador fornecido.
info <id>
O comando ''query'' realiza uma busca nos indivíduos cadastrados. Conforme as seguintes tags de busca:
- fn: Primeiro nome
- ln: Ultimo nome
- bd: Data de nascimento
- pn: Telefone
query (<tag>:<valor>)+
Saída
O comando ''add'' somente imprime na saída quando ocorre erro na inserção de um individuo, ocorrida na inserção de individuo com identificador duplicado.
O comando ''del'' somente imprime na saída quando o identificador solicitado não existe.
O comando ''info'' imprime todos dados de um determinado identificador, ou imprime erro se não existir individuo com o identificador fornecido.
O comando ''query'' retorna os identificadores que respeitem os critérios da busca na ordem crescente separados por espaços. Em caso de não existir nenhum individuo que respeite a busca, uma linha vazia deve ser impressa.
Exemplo
Entrada:
add 123 Roberto Nascimento 01/01/1960 +55-21-0190-0190
add 123 Joao Souza 11/10/2000 103-99
add 09 Andre Matias 01/01/1970 +55-21-0190-0190
add 222 Diogo Fraga 01/06/1967 +55-21-0190-0190
add 99 Seu Barbosa 01/01/1960 +55-21-0190-0190
add 100 Seu Beirada 01/01/1960 +55-21-9999-9999
add 155 Andre Fortunato 02/01/1962 +55-21-0190-0190
query bd:01/01/1960
query bd:01/01/1960 fn:Seu
query bd:01/01/1960 fn:Seu pn:+55-21-9999-9999
info 100
del 99
query fn:XXX
query bd:01/01/1960 fn:Seu
info 99
del 99
Saída:
ID 123 ja cadastrado.
99 100 123
99 100
100
Seu Beirada 01/01/1960 +55-21-9999-9999
100
ID 99 nao existente.
ID 99 nao existente.
Adicionado por: | Wanderley Guimarăes |
Data: | 2010-11-09 |
Tempo limite: | 1s |
Tamanho do fonte: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Linguagem permitida: | Todas exceto: ASM64 CLOJURE ERL FSHARP PERL6 PY_NBC SCALA TCL |
Origem: | Unicamp |
hide comments
|
||||||
2011-06-17 14:40:34 francapriscylla
Fiz em Python, pena que python é muito lento e deu limite de tempo excedido. Mas adorei fazer essa questăo, os teste passaram de primeira! |
||||||
2011-06-10 04:39:06 Rômulo
Caramba ... Eu resolvi esse problema de primeira (só um erro de compilaçăo, tava usando MSVC e compilei direto no GNU do SPOJ). O tempo năo foi um dos melhores, 5.80 ... Mas o quę, funcionou ! |
||||||
2011-04-15 19:55:02 Valmir [FACENS]
. Last edit: 2011-05-09 13:30:17 |
||||||
2011-03-07 04:25:49 Carlos Eduardo Rodrigues Alves [USJT]
Este problema esta' bem mal definido, fora dos padroes do SPOJ. Eis alguns limites, para tornar o problema um pouco mais tratavel: os IDs podem ter valores altos (mas inferiores a 2^31), as linhas de entrada tem menos de 80 caracteres e o numero de IDs distintos que podem aparecer e' inferior a 50000. |
||||||
2010-12-22 16:08:22 Leandro Perini Bortoletto
É simples mas trabalhoso |
||||||
2010-11-18 20:51:57 Waldir Rodrigues de Almeida
Pois é... |
||||||
2010-11-18 18:00:22 João Paulo Scalett
A disputa ta apertada hahaha quero pelo menos conseguir passar.. nem que seja com 5.99 segundos e 2G de memória. |
||||||
2010-11-16 23:17:35 Alexandre Faltz
Vida de estudante é difícil, né? |
||||||
2010-11-16 13:21:27 Bruno Martins [USJT]
Sem saber o limite das variáveis fica difícil... |