Um pequeno exercício Java para trabalhar modelagem de dados.
Você precisa saber se o SLA de atendimento está sendo atendido e, se não está, quantos pacientes na fila foram atendidos depois do SLA.
Você receberá um único array de EVENTOS, ordenado pela ordem cornológica de acontecimento. Cada evento contém as seguintes informações:
- tipo do evento (entrada ou atendimento)
- momento do eventos (em minutos)
- nome da pessoa (considere que toda pessoa tem um nome único)
- para o caso de entrada: tempo em minutos coridos desde o começo do atendimento que, se não for atendido, vai estourar o SLA
Considere o tempo zero como sendo o início. Sua tarefa é listar os nomes de todos os pacientes que tiveram o SLA ofendido (não importa a ordem), ou escrever "não houve ofensas ao SLA hoje" no caso de não tiver nenhum paciente com SLA ofendido.
É considerado que o SLA do paciente foi ofendido se, entre ele entrar e sair, se passou um tempo maior do que o SLA previsto para ele.
Entrada
E 6 jorge 180
A 180 jorge
Saída
não houve ofensas ao SLA hoje
Entrada
E 6 jorge 150
E 10 matheus 200
A 170 matheus
A 180 jorge
Saída
jorge
Entrada
E 0 ben 10
A 10 ben
E 11 tenninson 100
E 11 benjamin 90
E 90 button 90
A 100 benjamin
A 120 tenninson
E 150 pikachu 50
A 190 button
A 195 pikachu
Saída
tenninson
button
Use stream
.
Você não precisa lidar com I/O, estabeleça como se povoa o objeto que e mande o povoamento para eles.
No lugar de receber uma lista receba um Supplier. O retorno nulo indicaria fim da entrada.
Não é possível que uma pessoa seja atendida antes de entrar.
Toda pessoa que entrar vai ser atendida.
Uma mesma pessoa só vai ser atendida uma única vez
Nomes vão atender a seguinte regex: [A-Za-z][A-Za-z0-9_]*