Toca-fita X96688


Statement
 

pdf   zip

html

Você vai fazer uma longa viagem de carro, mas precisa gravar umas fitas para escutar no caminho. (Sim, o carro que você vai dirigir não possui cd player) Para gravar a fita, você deve escolher dentre as faixas da sua playlist favorita.

Você deve selecionar um conjunto de músicas que couberem na fita, deixando o mínimo de espaço restante possível, de acordo com as seguintes especificações:

  • Cada fita aceita no máximo N minutos de gravação.
  • Cada playlist possui no máximo 20 músicas.
  • Nenhuma faixa é maior que 1000 minutos.
  • Nenhuma faixa pode ser gravada mais de uma vez.
  • Cada faixa tem prioridade de acordo com sua ordem na playlist. Ou seja, as músicas que aparecem primeiro têm prioridade sobre as últimas.

O seu programa deve selecionar o conjunto de faixas que preenche melhor a fita, observando a ordem de preferência, e imprimir na mesma ordem em que são apresentadas na playlist.

Input

Há múltiplos casos de teste. Cada linha da entrada contém o valor N (a duração máxima de gravação da fita), o número de faixas e as durações de cada uma.

Por exemplo, na primeira linha: N = 5, número de faixas = 3, primeira faixa dura 1 minuto, a segunda 3 minutos e a última 4 minutos.

Output

Imprima o conjunto de músicas e suas durações e a string ’sum:’ seguida do espaço utilizado da fita.

Public test cases
  • Input

    5 3 1 3 4
    10 4 9 8 4 2
    20 4 10 5 7 4
    50 8 5 10 45 40 12 30 8 2
    90 8 10 23 1 2 3 4 5 7
    3 2 1 1
    

    Output

    1 4 sum:5
    8 2 sum:10
    10 5 4 sum:19
    5 45 sum:50
    10 23 1 2 3 4 5 7 sum:55
    1 1 sum:2
    
  • Information
    Author
    Carlos de Salles, DEINF/UFMA
    Language
    English
    Official solutions
    C
    User solutions
    C