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

HASHADIQ - Hash

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: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
2018-09-19 00:19:56
erro em tempo de execuçăo (NZEC)
O que é isso em C#? Eu coloquei já para a função main retornar um int, e return 0; no fim da função e não resolveu nada.
2015-03-10 11:55:16 MasterL
Rodando com o exemplo, obtenho:
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.

Mas o SPOJ sempre diz que a saída está errada...

Last edit: 2015-03-27 06:16:54
2014-09-08 21:30:20 Marco Santarelle da Silva Jardim
Pow man acredito ter feito um código legal em Java, mas sempre excede o limite de tempo... Como é definido esse limite? Poderia estar um limite pequeno considerando que em Java sempre é mais demorado? To confuso... Até o presente momento de minha pesquisa ninguém conseguiu em Java por esse motivo.
2014-07-05 04:05:40 Douglas Paz
Acredito que o lance de java com TLE seja por causa do EOF, pelo menos no meu caso năo consigo resolver isso, fica em um loop infinito!
2014-05-07 08:04:50 Pompeu(IFgoiano-Morrinhos)
alguem sabe se na query pode existir
fn:XXX ln:XXX bd:XXX pn::XXX
quatro dados diferentes?
2014-03-06 05:03:09 Jean Kirchner
Para os que tentaram resolver em java. Eu fiz uma submissăo só para ver o tempo de leitura usando o Scanner ou o Buffered reader, e só isso deu TLE.

Depois que eu otimizei a leitura, mesmo usando estratégias de hash para tudo, está dando TLE no java.

Meio complicado a diversidade de linguagens no site sendo que as linguagens que năo săo C, sempre dăo problemas.
2013-09-02 12:47:34 Bruno Damasceno Martins
Oq seria esse tempo limite? O usuário vai digitar os dados ou o programador chumba?
2013-08-30 13:50:50 Kleber Vianna [FATEC/SP]
O que deve acontecer se o usuário entrar com um comando errado ou năo existente? O programa emite mensagem de erro ou o ignora? Quantos indivíduos deveem ser esperados para o armazenamento?
2013-02-11 23:39:04 felipe
a entrada quando se for para adicionar, vai sempre seguir esse padrăo? nome sobrenome dtnascimento telefone
2012-11-27 10:35:06 Pedro Henrique Cordeiro Silva[IFNMG MONTES CLAROS]
Preciso de ajuda na parte do query

Last edit: 2012-12-09 17:11:16
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.