You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# returns the index of the first element in an array that# satisfies the provided testing functiondeffindIndex(l, fn, start=0):
fori, elinlist(enumerate(l))[start:]:
iffn(el):
returnireturn-1n=int(input()) # quantidade de asteroidesL= [ int(asteroide) forasteroideininput().split() ]
# acha o asteroide negativo mais perto do começofn=lambdastart=0: findIndex(L, lambdan: n<0, start)
# seleciona asteroide negativo mais perto do começocur=fn() # current asteroide indexwhilecur!=-1:
# percorre os elementos anteriores ao curi da esquerda p/ direitawhilecur>0:
# asteroides negativos vão ficar no começo da lista; ao encontrar um# asteroide negativo, todos os asteroides anteriores são negativosifL[cur-1] <0:
cur+=1breakifabs(L[cur]) >L[cur-1]:
L[cur-1] =L[cur]
delL[cur]
cur-=1elifabs(L[cur]) <L[cur-1]:
delL[cur]
# mantém valor de curbreakelse: # abs(L[cur]) == L[cur - i]delL[cur]
delL[cur-1]
cur-=1breakcur=fn(cur)
forasteroideinL:
print(asteroide)
fromfunctoolsimportreducetotal=int(input()) # quantidade de baús# capacidade de cada baúcapacidades= [ int(capacidade) forcapacidadeininput().split() ]
# quantidade atual dentro de cada baúquantidades= [ int(quantidade) forquantidadeininput().split() ]
adicionais=int(input()) # fósseis a serem armazenados# baús que faltam menos fósseis aparecem primeirobaus=sorted(
[
{
'capacidade': capacidades[i],
'quantidade': quantidades[i]
} foriinrange(total)
],
key=lambdat: t['capacidade'] -t['quantidade']
)
forbauinbaus:
ifadicionais==0:
breakespaco_vazio=bau['capacidade'] -bau['quantidade']
ifespaco_vazio==0:
continueifadicionais>=espaco_vazio:
bau['quantidade'] +=espaco_vazioadicionais-=espaco_vazioelse: # adicionais < espaco_vaziobau['quantidade'] +=adicionaisadicionais=0baus_cheios=list(filter(
lambdabau: bau['capacidade'] ==bau['quantidade'], baus
))
print(len(baus_cheios))
E - Números primos
importmath# n prime number starting from x doublen, x= [ int(n) fornininput().split() ]
x*=2defisPrime(n):
ifn!=2andn%2==0:
returnFalseforiinrange(3, int(math.sqrt(n) +1), 2):
ifn%i==0:
returnFalsereturnTrueprimes= []
while (len(primes) !=n):
if (isPrime(x)):
primes.append(x)
x+=1forprimeinprimes:
print(prime)
F - Jogo de Sinuca
n=int(input()) # quantidade de bolas p/ cada jogadorbolas= [ int(bola) forbolaininput().split() ]
ultimo_jogador=input() # o jogador que encaçapou a bola 8bolas_s=list(filter(lambdabola: bola<8, bolas)) # bolas do jogador Sbolas_z=list(filter(lambdabola: bola>8, bolas)) # bolas do jogador Ziflen(bolas_s) <nandlen(bolas_z) <n:
# caso falso, quer dizer que um ou ambos acertaram todas as bolasprint('Z'ifultimo_jogador=='S'else'S')
eliflen(bolas_s) ==nandlen(bolas_z) ==n:
print(ultimo_jogador)
eliflen(bolas_s) ==n:
print('S')
else: # len(bolas_z) == nprint('Z')