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
|
||||||
2012-05-03 00:48:02 William Lopes [UFV-CF]
Fiz agora com o map em c++, mas mesmo assim está excendendo o tempo limite, alguém poderia dar uma luz? |
||||||
2012-04-22 00:14:36 Dyeison Carraro [FAJ]
O problema fala em "imprime erro", mas na saída exemplo ele imprime "ID 99 nao existente". Faltam alguns padrőes aqui. |
||||||
2012-04-20 07:48:22 William Lopes [UFV-CF]
Consegui fazer, mas sempre excede o limite de tempo... Estou utilizando lista duplamente ligadas... Alguma sugestăo? Last edit: 2012-04-20 16:31:48 |
||||||
2011-10-15 02:37:32 thiagojobson [UERN]
Na força bruta descobri que as IDs devem ser tratadas como inteiros (dăă!). Outra coisa săo os nomes e sobrenomes iguais....Pais sem imaginaçăo :D |
||||||
2011-10-05 00:00:09 thiagojobson [UERN]
No caso do id "09" pode ser considerado como um simples '9'? |
||||||
2011-10-03 13:56:18 Cupuaçú Ciberespacial
Alguém conseguiu resolver esse problema usando Java? No meu caso está dando tempo excedido :( |
||||||
2011-08-27 19:43:24 Rodrigo Roim Ferreira [ITA]
Ah, e passou só com hash, mas quase estourou o tempo limite. |
||||||
2011-08-27 19:43:06 Rodrigo Roim Ferreira [ITA]
Năo tem ids negativos |
||||||
2011-07-16 03:44:35 Marlon Fernandes de Alcantara [IC-UNICAMP]
Só com hash năo consegui, tive que usar uma trie, segue a dica pros próximos! |
||||||
2011-07-15 21:10:25 Marlon Fernandes de Alcantara [IC-UNICAMP]
Rômulo, qual a super sacada que torna esse problema simples!? |