Problema da prefeitura em crise

From AdonaiMedrado.Pro.Br
Revision as of 19:30, 9 June 2009 by Adonaimedrado (Talk | contribs) (Dificuldade única)

Jump to: navigation, search

Dificuldade única

Uma prefeitura está em período de baixa arrecadação e não tem condições de fazer o pagamento integral da sua folha de pagamento.

O prefeito decidiu que iria pagar somente aquelas pessoas que recebem os menores salários, pois, segundo sua interpretação, elas seriam as mais necessitadas.

Você foi contratado como consultor externo para fazer um programa que, com base na folha de pagamento em formato XML, seja capaz de informar quais os funcionários receberão ou não o pagamento salacial.

A entrada consistirá de um número inteiro K (0<=K<=1000000). A saída deverá ser o nome dos funcionários que receberão salário um em cada linha em ordem alfabética.

Algumas considerações:

  • Não havendo possibilidade de atender todas as pessoas de uma mesma faixa salarial, a prioridade é para aquelas com maior idade. Caso ainda haja empate, a prioridade é para aquelas cujo nome venha primeiro na ordem alfabética.
  • Não há homônimos da prefeitura.
  • A idade sempre será um número inteiro e estará no intervalo fechado entre 18 e 100.
  • O salário sempre será um número inteiro e estará no intervalo fechado entre 1 e 1000.
  • O programa deve ler a folha do arquivo d:\testcase\prefeitura\folha.xml. Neste arquivo as entradas não estão ordenadas e o salário é representado por um número inteiro. O formato deste arquivo segue o exemplo abaixo.
<PrefeituraEmCrise>
   <FolhaDePagamento>
       <Servidor>Nome1</Servidor>
       <Salario>123</Salario>
       <Idade>29</Idade>
   </FolhaDePagamento>
   ....
   <FolhaDePagamento>
       <Servidor>NomeN</Servidor>
       <Salario>123</Salario>
       <Idade>68</Idade>
   </FolhaDePagamento>
</PrefeituraEmCrise>

Arquivo de Exemplo

<PrefeituraEmCrise>
   <FolhaDePagamento>
       <Servidor>Z</Servidor>
       <Salario>10</Salario>
       <Idade>29</Idade>
   </FolhaDePagamento>
   <FolhaDePagamento>
       <Servidor>D</Servidor>
       <Salario>10</Salario>
       <Idade>30</Idade>
   </FolhaDePagamento>
   <FolhaDePagamento>
       <Servidor>A</Servidor>
       <Salario>10</Salario>
       <Idade>30</Idade>
   </FolhaDePagamento>
   <FolhaDePagamento>
       <Servidor>E</Servidor>
       <Salario>12</Salario>
       <Idade>68</Idade>
   </FolhaDePagamento>
   <FolhaDePagamento>
       <Servidor>C</Servidor>
       <Salario>5</Salario>
       <Idade>25</Idade>
   </FolhaDePagamento>
</PrefeituraEmCrise>

Exemplo

Entrada

5
15
20
25
35
50
0

Saída

Teste 1
C

Teste 2
A
C

Teste 3
A
C

Teste 4
A
C
D

Teste 5
A
C
D
Z

Teste 6
A
C
D
E
Z