[ED231] Estatísticas Epidemiológicas

Neste problema deverá submeter uma classe ED231 contendo um programa completo para resolver o problema (ou seja, com o método main).


[SUBMISSÃO PARA AVALIAÇÃO] Este problema está disponível para submissão a contar para avaliação até às 23:59 do dia 16 de Maio. Não deixe de ler as instruções para submissão.


A divisão de epidemiologia e estatística do serviço de saúde da Algoritmolândia tem disponíveis os dados de propagação de um novo vírus ED-VIR-20, sendo registado diariamente o número total de casos confirmados. Será que podes ajudá-los a calcular algumas estatísticas sobre esses dados?

Input

Na primeira linha do input vem um número N indicando o número de dias consecutivos durante os quais foi registo o total de casos confirmados (2 ≤ N ≤ 100).

A segunda linha contém uma sequência de N inteiros C(i) separados por um espaço, indicando o número de casos confirmados em cada dia (0 ≤ C(i) ≤ 105). A sequência é garantidamente crescente (C(i-1) ≤ C(i)).

A terceira linha contém o valor de uma flag que pode tomar os valores 1, 2 ou 3. Este valor indica qual a subtarefa a que deve responder.

Output

O output depende do valor da flag dada no input:

Se a flag for 1 (30% da cotação), deve imprimir uma linha contendo dois inteiros separado por um espaço: o valor mínimo e o valor máximo de novos casos por dia. O valor de novos casos no dia i é igual a C(i) - C(i-1).

Se a flag for 2 (40% da cotação): deve imprimir uma linha contendo dois inteiros separado por um espaço: a quantidade de períodos de baixa propagação e o maior tamanho de um período de baixa propagação. Um período de baixa propagação é definido como sendo uma sequência de dias consecutivos onde a subida percentual diária de casos confirmados é sempre inferior ou igual a 5%. O seu tamanho é a quantidade de números na sequência. A subida percentual no dia i é igual a (C(i) - C(i-1)) / C(i-1). É garantido nesta flag que pelo menos um dia tem subida interior ou igual a 5%.

Se a flag for 3 (30% da cotação), deve imprimir um pequeno gráfico de barras indicando o total de casos confirmados por dia. A cada coluna do gráfico corresponde um dia i, e a altura da barra corresponde ao número de casos nesse dia Ci. A barra deve ser desenhado usando carateres '#', onde cada '#' corresponde a 100 casos, ou seja, o número de '#' no dia i corresponde a C(i) / 100. Os espaços em branco no gráfico devem ser representados pelo carater '.', e não devem ser imprimidas mais linhas do que o necessário (tantas linhas quantas as necessárias para conter a maior barra, sendo garantida que existe pelo menos um dia com pelo menos 100 casos). Verifiquem o exemplo de input para confirmar se perceberam o pedido.

Exemplo de Input/Output para Flag 1

InputOutputExplicação
8
2 4 8 14 19 25 28 29
1
1 6
Os aumentos são de +2, +4, +6, +5, +6, +3, +1.
O menor aumento corresponde a +1; o maior aumento corresponde a +6.

Exemplo de Input/Output para Flag 2

InputOutputExplicação
11
100 105 110 116 121 128 140 141 146 150 153
2
3 4
As subidas percentuais diárias são: 5.00%, 4.76%, 5.45%, 4.31%, 5.79%, 9.38%, 0.71%, 3.55%, 2.74%, 2.00%
As subidas inferiores ou iguais a 5% estão indicadas a verde. Um período de baixa propagação é uma sequência de dias a verde.
Existem 3 periodos de dias consecutivos a verde, de tamanhos 2, 1 e 4.

Exemplo de Input/Output para Flag 3

InputOutputExplicação
8
42 100 202 299 407 603 1045 1320
3
.......#
.......#
.......#
......##
......##
......##
......##
.....###
.....###
....####
....####
..######
.#######
O gráfico 8 colunas (8 dias) e 13 linhas (a altura da maior barra é de 13, correspondendo ao dia com 1320).
A altura de cada barra é o valor desse dia a dividir por 100.
Os '.' correspondem a espaços no gráfico sem barra.