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

7808. Hash

Problema: HASHADIQ

Autor: Tiago Falcão


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:6s
Tamanho do fonte:50000B
Linguagem permitida:Todas exceto: AWK CLOJ ERL F# GO JS PERL 6 SCALA SED TCL
Origem:Unicamp

hide comments
2012-05-03 02: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 02:14:36 Dyeison Carraro
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 09: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 18:31:48
2011-10-15 04: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 02:00:09 thiagojobson [UERN]
No caso do id "09" pode ser considerado como um simples '9'?
2011-10-03 15:56:18 Cupuaçú Ciberespacial
Alguém conseguiu resolver esse problema usando Java? No meu caso está dando tempo excedido :(
2011-08-27 21:43:24 Rodrigo Roim Ferreira [ITA]
Ah, e passou só com hash, mas quase estourou o tempo limite.
2011-08-27 21:43:06 Rodrigo Roim Ferreira [ITA]
Não tem ids negativos
2011-07-16 05:44:35 Marlon Fernandes de Alcantara [The Runners-UDESC]
Só com hash não consegui, tive que usar uma trie, segue a dica pros próximos!
2011-07-15 23:10:25 Marlon Fernandes de Alcantara [The Runners-UDESC]
Rômulo, qual a super sacada que torna esse problema simples!?
SPOJ System © 2012 Sphere Research Labs | Projekty informatyczne i aplikacje na zamówienie. All Rights Reserved.