Você está na página 1de 3

Questo 2

Seja F uma funo booleana que recebe um array A e um inteiro 1 x


tamanho(A). F retorna um indicador de se ou no possvel somar o x-simo
valor de A com elementos de algum subconjunto de A[1..x-1]. OBS: O conjunto
vazio soma 0.

Por exemplo,
F({7,3,10,8}, 3) =True, pois d para somar 10 com um subconjunto de {7,3}
F({1,10,2}, 3) =False, pois no se consegue somar 2 com um subconjunto de {1,10}
F({1,2}, 1) =False, pois no d para somar 1 com o conjunto vazio.
F({0,2}, 1) =True, porque consegue-se somar 0 com o conjunto vazio.
F({5,5}, 2) =True, porque consegue-se somar 5 com um subconjunto de {5}.
F({2,1,4,6,1}, 4) =True, porque consegue-se somar 6 com um subconjunto de {2,1,4}

Implemente F e escreva um programa Compound(A) para, dado um


array de nmeros naturais A, imprimir, EM ORDEM CRESCENTE, quais so os
x's, 1 x tamanho(A), para os quais F(A, x) retorna True.

Formato de Entrada (Arquivo PP2Q2.in)


A primeira linha contm N (1 N 40), o nmero de elementos de A.
A prxima linha contm os N nmeros de A, a i (0 ai 500). (O primeiro
elemento da linha A[1], o ltimo elemento A[N]).

Formato de Sada (Arquivo PP2Q2.out)

Imprima os xs que satisfazem F(A,x) == True, cada um em uma linha e em


ordem crescente.

OBS:
1. Para cada instncia de Compound, garantido que F(A, x) ser True para
pelo menos um elemento.
2. Na avaliao, um elemento impresso incorretamente elimina um elemento
impresso corretamente.

Exemplo de Entrada
16
0 8 9 2 4 7 12 100 0 1 7 7 6 14 18 123

Exemplo de Sada
1
7
9
11
12
13
14
15
16

Questo 2) (Programao Dinmica)


Um espetculo circense tem um nmero no qual vrias
tartarugas so empilhadas, uma sobre a outra.
Para no maltratar as tartarugas, a cada show as tartarugas
que foram empilhadas so separadas para um perodo de
descanso, e novas tartarugas so selecionadas dentre as
que esto disponveis.
Para no atrasar o espetculo, o dono do circo solicitou que
seja feito um programa para ler a relao de peso e fora
das tartarugas disponveis para o prximo show. Cada uma

das n tartarugas tem um peso e fora especfico. Sua


tarefa determinar o maior nmero de tartarugas que pode
ser usado para construir uma pilha sem que nenhuma delas
tenha a sua capacidade excedida.
FORMATO DA ENTRADA E SADA:
A entrada composta por vrias linhas, cada uma contendo
um par de inteiros separados por um ou mais caracteres em
branco, especificando o peso e a fora de uma tartaruga,
ambos em gramas, onde a fora a capacidade de carga
total da tartaruga, incluindo o seu prprio peso. Ou seja,
uma tartaruga pesando 300g com uma fora de 1000g
poderia levar 700g de tartarugas em suas costas.
A sua sada um nmero inteiro nico que indica o nmero
mximo de tartarugas que podem ser empilhados sem
exceder a resistncia de qualquer uma delas.
Exemplo de ENTRADA:
300 1000
1000 1200
200 600
100 101

SADA CORRESPONDENTE:
3