[ED241] Submissões

Neste problema deverá submeter uma classe ED241 contendo um programa completo para resolver o problema (ou seja, com o método main).
Pode assumir que no Mooshak terá acesso a todas as classes base dadas nas aulas, incluindo as de árvores binárias BTree, BSTree e BSTMap (não precisa de as incluir na submissão).
Pode fazer download de todas as classes num arquivo zip ou ver as classes uma a uma.


[PROBLEMAS PARA DOWNLOAD] Para precaver uma possível intermitência na ligação de internet, podem e devem fazer download de todos os problemas em:
https://mooshak.dcc.fc.up.pt/~edados/_teste_p2_/NUM_MECANOGRAFICO.zip (onde NUM_MECANOGRAFICO deve ser substituido pelo vosso número mecanográfico)


Suponha que tem disponível uma lista de submissões de programas. Uma submissão é caracterizada por um triplo (Aluno,Problema,Resultado), onde um Aluno é o nome do aluno, Problema é o nome de um problema de programação que o aluno estava a tentar resolver e resultado é o resultado da submissão (se foi aceite ou não).

A sua tarefa é fazer algumas estatísticas sobre estas submissões. Nomeadamente, deve calcular:

Imagine por exemplo que tinha a seguinte lista de 10 submissões:

Aluno Problema Resultado
PedroRibeiro ED213 Accepted
ManuelPinto ED213 Accepted
PedroRibeiro ED212 Accepted
ManuelPinto ED213 WrongAnswer
ClaudioCunha ED212 RuntimeError
ClaudioCunha ED211 CompileError
PedroRibeiro ED211 Accepted
PedroRibeiro ED212 Accepted
ManuelPinto ED213 CompileError
AntonioFerreira ED213 TimeLimitExceeded

Para esta lista de avaliações as estatísticas eram as seguintes:

Input

A primeira linha de input contém um inteiro F, a flag (1, 2, 3 ou 4) indicando qual estatística deve calcular, de acordo com o atrás descrito.

A segunda linha contém um inteiro N, a quantidade de submissões (1≤N≤1000). Seguem-se N linhas descrevendo as submissões em si, cada uma no formato NOME PROBLEMA RESULTADO, onde NOME, PROBLEMA e RESULTADO são palavras sem espaços.

Output

O output do seu programa depende da flag dada:

Note que para estabelecer a ordem alfabética pode usar a ordem natural das Strings, não tendo de se preocupar com o facto das letras serem maiúsculas ou minúsculas.

Dicas

É livre para fazer fazer como quiser, mas é sugerido fazer da seguinte maneira:

Exemplos de Input/Output

Os quatro exemplos de input correspondem precisamente às quatro flags para o caso dado.

Input 1 Output 1
1
10
PedroRibeiro ED213 Accepted
ManuelPinto ED213 Accepted
PedroRibeiro ED212 Accepted
ManuelPinto ED213 WrongAnswer
ClaudioCunha ED212 RuntimeError
ClaudioCunha ED211 CompileError
PedroRibeiro ED211 Accepted
PedroRibeiro ED212 Accepted
ManuelPinto ED213 CompileError
AntonioFerreira ED213 TimeLimitExceeded
    
4

 

Input 2 Output 2
2
10
PedroRibeiro ED213 Accepted
ManuelPinto ED213 Accepted
PedroRibeiro ED212 Accepted
ManuelPinto ED213 WrongAnswer
ClaudioCunha ED212 RuntimeError
ClaudioCunha ED211 CompileError
PedroRibeiro ED211 Accepted
PedroRibeiro ED212 Accepted
ManuelPinto ED213 CompileError
AntonioFerreira ED213 TimeLimitExceeded
    
ED213 5

 

Input 3 Output 3
3
10
PedroRibeiro ED213 Accepted
ManuelPinto ED213 Accepted
PedroRibeiro ED212 Accepted
ManuelPinto ED213 WrongAnswer
ClaudioCunha ED212 RuntimeError
ClaudioCunha ED211 CompileError
PedroRibeiro ED211 Accepted
PedroRibeiro ED212 Accepted
ManuelPinto ED213 CompileError
AntonioFerreira ED213 TimeLimitExceeded
    
ED211
ED212

 

Input 1 Output 1
4
10
PedroRibeiro ED213 Accepted
ManuelPinto ED213 Accepted
PedroRibeiro ED212 Accepted
ManuelPinto ED213 WrongAnswer
ClaudioCunha ED212 RuntimeError
ClaudioCunha ED211 CompileError
PedroRibeiro ED211 Accepted
PedroRibeiro ED212 Accepted
ManuelPinto ED213 CompileError
AntonioFerreira ED213 TimeLimitExceeded
    
PedroRibeiro

 


Teste Prático de Estruturas de Dados (CC1007)
8 de Junho de 2020