Ir ao conteúdo
  • Cadastre-se

Gustavo Germano

Membro Júnior
  • Posts

    7
  • Cadastrado em

  • Última visita

Tudo que Gustavo Germano postou

  1. Boa noite . Alguém pode me ajudar como desenvolver esse problema, porém, na linguagem python? Abaixo está o problema e o código em C++ #include <bits/stdc++.h> #define MAX 100 #define INF -1 #define ll long long int using namespace std; vector<ll> livros[MAX]; vector<ll> answer; bool comp(int a, int b) { return a > b; } int main() { ll n, x; for(int i = 0 ; i < 5; i++){ scanf("%lld",&n); for(int j = 0; j < n; j++) { scanf("%lld",&x); livros[i].push_back(x); } } for(int i = 0 ; i < livros[0].size(); i++) for(int j = 0 ; j < livros[1].size(); j++) for(int k = 0 ; k < livros[2].size(); k++) for(int l = 0 ; l < livros[3].size(); l++) for(int m = 0 ; m < livros[4].size(); m++) answer.push_back(livros[0][i] + livros[1][j] + livros[2][k] + livros[3][l] + livros[4][m]); sort(answer.begin(),answer.end(),comp); scanf("%d",&n); ll res = 0; for(int k = 0 ; k < n; k++) res += answer[k]; printf("%lld\n",res); return 0; } Bino tem vários conjuntos de diferente livros, onde cada conjunto representa uma matéria(português, matemática, física, química e biologia). Sabendo o valor de cada livro de uma certa matéria, sua tarefa é informar qual a soma dos valores dos K conjuntos distintos de livros mais valiosos. Onde um conjunto é definido por uma coleção de livros de cada matéria, e um conjunto é dito diferente se há pelo menos um livro diferente. A entrada de forma resumida consiste em 6 linhas, as 5 primeiras definem respectivamente a coleção de livros de português, matemática, e assim por diante. Onde o primeiro inteiro n, é a quantidade de livros dessa matéria (1 <= n <= 5). E os demais n números que o seguem, (v1,v2,v3,…vi, onde i <= n e 1 <= vi <= 1000), são os valores de cada livro nessa coleção. A sexta linha contém apenas o inteiro K. O exemplo: 5 2 5 6 3 8 5 9 6 3 1 5 5 4 8 5 2 6 5 3 2 4 9 5 5 7 8 5 1 4 1 Qual nossa resposta para esse caso? Bem nesse caso é simples, como K é igual a 1, a pergunta que temos que responder é: Qual o maior valor possível de um conjunto formado por um livro de cada matéria? Basta colocarmos no nosso conjunto os maiores elementos de cada matéria. Utilizaríamos os elementos pintados de verde, e assim nossa resposta seria 42. 5 2 5 6 3 8 5 9 6 3 1 5 5 4 8 5 2 6 5 3 2 4 9 5 5 7 8 5 1 4 1 8 + 9 + 8 + 9 + 8 = 42. Se K fosse 2. O conjunto em verde acima, seria o conjunto de maior valor, e o segundo conjunto de maior valor é o conjunto em amarelo abaixo, cuja soma é 41 logo a resposta é 42 + 41 = 83. 5 2 5 6 3 8 5 9 6 3 1 5 5 4 8 5 2 6 5 3 2 4 9 5 5 7 8 5 1 4 1 8 + 9 + 8 + 9 + 7 = 41. Certo, legal! Mas então quando K > 1 teremos que escolher algum elemento para tirar e colocar outro em seu lugar? E ir fazendo isso até que tenhamos a quantidade de K pedida, depois somamos tudo? SOCORROOOOO, isso ta parecendo muito complicado de codificar! Como organizar quais já foram utilizados? Como saber quem tirar? O WA está batendo na nossa porta! Então, como utilizar a ideia acima de forma mais simples? Dica 1: sempre olhe o tamanho da entrada! Na maioria das vezes é isso quem vai dizer o quão eficiente sua resposta terá que ser. Dica 2: pense!!!!! Bem, seguindo a dica 1, perceba que n (quantidade de livros de uma certa matéria) é menor ou igual a 5. O que é bem pequeno, isso nos da a liberdade de fazer uma solução não tão eficiente sem medo de TLE. Ainda seguindo a dica 1, perceba no enunciado original da questão que “K (1 ≤ K ≤P*M*Q*F*B)”. O que faz sentido já que teremos que escolher um conjunto, do tipo: (p, m, q, f, b), onde p pertence ao conjunto de livros de português, m pertence ao conjunto de livros de matemática, … Certo, agora vamos pensar! Temos que escolher um p para colocar no conjunto, quantos livros de português podemos escolher? Bem, no máximo 5 (1 <= n <= 5). E essa resposta é a mesma para os demais livros já que para todos n vai até 5. Então quantos conjuntos diferentes existem no máximo? 5*5*5*5*5 = 5⁵ = 3125. Podemos gerar essa informação que passa no tempo! Então sabemos que podemos testar todos os conjuntos sem medo de levar TLE, então agora basta implementar isso! Como fazemos? for p in portugues: for m in matematica: for f in fisica: for q in quimica: for b in biologia: (p + m + f + q + b) é um valor de um conjunto! Como obter a resposta final? Podemos guardar a informação anterior (em uma lista por exemplo), ordená-la, e TCHANRAAAAM a resposta será a soma dos K maiores valores!
  2. Boa noite . Alguém pode me ajudar como desenvolver esse problema, porém, na linguagem python? Abaixo está o problema e o código em C++ #include <bits/stdc++.h> #define MAX 100 #define INF -1 #define ll long long int using namespace std; vector<ll> livros[MAX]; vector<ll> answer; bool comp(int a, int b) { return a > b; } int main() { ll n, x; for(int i = 0 ; i < 5; i++){ scanf("%lld",&n); for(int j = 0; j < n; j++) { scanf("%lld",&x); livros[i].push_back(x); } } for(int i = 0 ; i < livros[0].size(); i++) for(int j = 0 ; j < livros[1].size(); j++) for(int k = 0 ; k < livros[2].size(); k++) for(int l = 0 ; l < livros[3].size(); l++) for(int m = 0 ; m < livros[4].size(); m++) answer.push_back(livros[0][i] + livros[1][j] + livros[2][k] + livros[3][l] + livros[4][m]); sort(answer.begin(),answer.end(),comp); scanf("%d",&n); ll res = 0; for(int k = 0 ; k < n; k++) res += answer[k]; printf("%lld\n",res); return 0; } Bino tem vários conjuntos de diferente livros, onde cada conjunto representa uma matéria(português, matemática, física, química e biologia). Sabendo o valor de cada livro de uma certa matéria, sua tarefa é informar qual a soma dos valores dos K conjuntos distintos de livros mais valiosos. Onde um conjunto é definido por uma coleção de livros de cada matéria, e um conjunto é dito diferente se há pelo menos um livro diferente. A entrada de forma resumida consiste em 6 linhas, as 5 primeiras definem respectivamente a coleção de livros de português, matemática, e assim por diante. Onde o primeiro inteiro n, é a quantidade de livros dessa matéria (1 <= n <= 5). E os demais n números que o seguem, (v1,v2,v3,…vi, onde i <= n e 1 <= vi <= 1000), são os valores de cada livro nessa coleção. A sexta linha contém apenas o inteiro K. O exemplo: 5 2 5 6 3 8 5 9 6 3 1 5 5 4 8 5 2 6 5 3 2 4 9 5 5 7 8 5 1 4 1 Qual nossa resposta para esse caso? Bem nesse caso é simples, como K é igual a 1, a pergunta que temos que responder é: Qual o maior valor possível de um conjunto formado por um livro de cada matéria? Basta colocarmos no nosso conjunto os maiores elementos de cada matéria. Utilizaríamos os elementos pintados de verde, e assim nossa resposta seria 42. 5 2 5 6 3 8 5 9 6 3 1 5 5 4 8 5 2 6 5 3 2 4 9 5 5 7 8 5 1 4 1 8 + 9 + 8 + 9 + 8 = 42. Se K fosse 2. O conjunto em verde acima, seria o conjunto de maior valor, e o segundo conjunto de maior valor é o conjunto em amarelo abaixo, cuja soma é 41 logo a resposta é 42 + 41 = 83. 5 2 5 6 3 8 5 9 6 3 1 5 5 4 8 5 2 6 5 3 2 4 9 5 5 7 8 5 1 4 1 8 + 9 + 8 + 9 + 7 = 41. Certo, legal! Mas então quando K > 1 teremos que escolher algum elemento para tirar e colocar outro em seu lugar? E ir fazendo isso até que tenhamos a quantidade de K pedida, depois somamos tudo? SOCORROOOOO, isso ta parecendo muito complicado de codificar! Como organizar quais já foram utilizados? Como saber quem tirar? O WA está batendo na nossa porta! Então, como utilizar a ideia acima de forma mais simples? Dica 1: sempre olhe o tamanho da entrada! Na maioria das vezes é isso quem vai dizer o quão eficiente sua resposta terá que ser. Dica 2: pense!!!!! Bem, seguindo a dica 1, perceba que n (quantidade de livros de uma certa matéria) é menor ou igual a 5. O que é bem pequeno, isso nos da a liberdade de fazer uma solução não tão eficiente sem medo de TLE. Ainda seguindo a dica 1, perceba no enunciado original da questão que “K (1 ≤ K ≤P*M*Q*F*B)”. O que faz sentido já que teremos que escolher um conjunto, do tipo: (p, m, q, f, b), onde p pertence ao conjunto de livros de português, m pertence ao conjunto de livros de matemática, … Certo, agora vamos pensar! Temos que escolher um p para colocar no conjunto, quantos livros de português podemos escolher? Bem, no máximo 5 (1 <= n <= 5). E essa resposta é a mesma para os demais livros já que para todos n vai até 5. Então quantos conjuntos diferentes existem no máximo? 5*5*5*5*5 = 5⁵ = 3125. Podemos gerar essa informação que passa no tempo! Então sabemos que podemos testar todos os conjuntos sem medo de levar TLE, então agora basta implementar isso! Como fazemos? for p in portugues: for m in matematica: for f in fisica: for q in quimica: for b in biologia: (p + m + f + q + b) é um valor de um conjunto! Como obter a resposta final? Podemos guardar a informação anterior (em uma lista por exemplo), ordená-la, e TCHANRAAAAM a resposta será a soma dos K maiores valores!
  3. Boa noite. Uma ajuda. Como ficaria esse programa passado de Pascal para Python?É um programa q converte um número informado pelo usuário para qualquer base entre 2 e 9. Sua entrada e saída seria, por exemplo: entrada saida numero base numero convertido 5 2 101 program quest_06_AD1(Input{teclado}, Output{Vídeo}); function converter(D, B{e}: Integer): String; Var Digito: String; begin if D=0 then converter:= '' else begin str(D mod B, Digito); converter:= converter(D div B, B)+Digito; end; end; Var Base: Byte; msg, resultado: String; Decimal: Integer; begin msg:= 'Diga uma Base'; repeat write(output, msg+':'); readln(input, Base); msg:= msg+' Válida'; {a msg fica maior a cada erro do usuário!} until (Base>1) and (Base<10); write(output, 'Diga um decimal:'); readln(input, Decimal); while Decimal>=0 do begin if Decimal=0 then resultado:= '0' else resultado:= converter(Decimal, Base); writeln(output, Base, ' ', Decimal, ' ', resultado); write(output, 'Diga outro decimal:'); readln(input, Decimal); end; end. tentei passar para python , mas estou com dificuldades: def converter(dig,base): if digito==0: else: converter = '' else: str(dig%base,digito) converter=converter(dig//base,base): return converter resultado= str(input('')) bases=int(input('')) decimal=int(input('')) while x>=0 or y>1 and y<10: x = int(linhaLida.split()[0]) y = int(linhaLida.split()[1]) resultado=converter(dig,base) resultado = input(decimal,''bases,'',resultado)
  4. Obrigado. Ficou muito mais fácil do que o jeito q eu tava tentando resolver.
  5. Boa noite. Como faço para contar o total de dígitos e vogais em todas as strings , incluindo as repetidas?Meu programa ta informando apenas a quantidade de strings com dígitos ou vogais: E tb como faço para informar a string de maior comprimento? def contandoVogal(frase): for x in frase: if x in ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']: return True return False def contandodigitos(numeros): for x in numeros: if x in ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']: return True return False def palindrome(s): if len(s) <= 1: return True else: return s[0] == s[len(s) - 1] and palindrome(s[1:len(s) - 1]) contaVogais = 0 contaDigitos=0 contaPalindromas=0 lida = input("Informe uma string: ") while lida != "": if palindrome(lida): contaPalindromas += 1 print(lida, "é Palíndrome") if contandoVogal(lida): contaVogais += 1 if contandodigitos(lida): contaDigitos += 1 lida = input("Informe mais uma string: ") print("A quantidade de vogais lidas é", contaVogais) print("A quantidade de dígitos lidos é:", contaDigitos) print("A quantidade de Palíndromas Lidas é:", contaPalindromas)
  6. Boa noite pessoal. Sou novo aqui e tô aprendendo Python. Alguém pode me ajuda em um exercício? o exercício é esse: Leia números inteiros do teclado até que um número negativo seja teclado. Escreva, caso existam, quais os cinco maiores números lidos. Caso menos que cinco números sejam lidos, mostre todos os números lidos. Restrição Não é permitido manter em memória mais que seis números lidos. meu código está assim, só os 2 numeros maiores saem certo: lido = int(input()) qtdLidos = 0 oMaior = lido segundoMaior = -1 terceiroMaior= -1 quartoMaior= -1 quintoMaior= -1 while lido >= 0: qtdLidos += 1 if lido > oMaior: segundoMaior = oMaior oMaior = lido elif qtdLidos > 1 and lido > segundoMaior: segundoMaior = lido if lido > segundoMaior: terceiroMaior = segundoMaior segundoMaior = lido elif qtdLidos > 1 and lido > terceiroMaior: terceiroMaior = lido if lido >terceiroMaior: quartoMaior = terceiroMaior terceiroMaior = lido elif qtdLidos > 1 and lido > quartoMaior: quartoMaior = lido if lido > quartoMaior: quintoMaior = quartoMaior quartoMaior = lido elif qtdLidos > 1 and lido > quintoMaior: quintoMaior = lido lido = int(input()) if qtdLidos == 0: print("Nenhum valor válido!!!") elif qtdLidos == 1: print("Apenas um valor foi lido:", oMaior) else: print("Estes são os maiores números:", oMaior, segundoMaior,terceiroMaior,quartoMaior,quintoMaior)

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!