Stack Overflow em Português Asked by Bilbo on January 2, 2022
Eu estou fazendo um programa que é uma resolução dessa questão da Olimpíada de Informática.
A, B, C = input("A").split(), input("B").split(), input("C").split()
A, B, C = int(A[0]), int(B[0]), int(C[0])
if A >= 1 and A <= 300 and B >= 1 and B<= 300 and C >= 1 and C <= 300 :
pass
else :
raise ValueError("Deu Erro")
H, L= int (input("Qual a altura")), int (input("Qual a Largura"))#dimensões da porta
if H >= 1 and H <= 250 and L >= 1 and L <= 250 :
pass
else:
raise ValueError("Deu Erro")
if (A and B) > (H and L) or (A and C) > (H and L) or (B and C) > (H and L):
print ("N")
else :
print("S")
Ele ainda tem muitas falhas, mas ao rodar ele não estou tendo o erro:
EOFError: EOF when reading a line
Quando coloco pra corrigir ele, estou. Eu queria saber o porquê disso.
Esta questão que tem como título Colchão
, foi inicialmente disponibilizada pela OBI de 2012 e posteriormente, disponibilizada por Uri Online Judge, com o mesmo título, Colchão
, e com a numeração 2409
da categoria AD-HOC
.
Como é de se perceber, a questão nos pede para verificar se dada as dimensões de um colchão, dizer se o mesmo consegue ou não passar pela porta, com uma de suas faces
, paralela ao chão.
Observe que a questão diz, que o colchão deve passar pela porta com uma
de suas faces paralela ao chão
. Além disso, nos diz que as dimensões do colchão são (1 <= A, B, C <= 300)
e também, as dimensões da porta são (1 <= H, L <= 250)
.
Para resolver esta questão corretamente devemos perceber que como a dimensão máxima do colchão é 300
e a dimensão máxima da porta é 250
e que também, o colchão sempre passará pela porta com uma de suas faces paralela
ao chão, devemos implementar o seguinte algoritmo...
colchao = sorted(list(map(int, input().split())))
porta = sorted(list(map(int, input().split())))
if (colchao[0] <= porta[0]) and (colchao[1] <= porta[1]):
print('S')
else:
print('N')
Veja o funcionamento do algoritmo no repl.it.
Observe que, quando este algoritmo é executado, a tela fica limpa aguardando os valores das dimensões do colchão
. Neste momento devemos, digitar todas as três
dimensões do colchão, na mesma
linha, separadas por apenas um
espaço e pressionar Enter
.
Depois que digitamos todas as dimensões do colchão, os valores são ordenados
e armazenados dentro da lista colchao
.
Em seguida inserimos as dimensões da porta
tal como inserimos as do colchão.
Após pressionarmos a tecla enter
o programa irá verificar se a menor
dimensão do colchão é menor ou igual à menor
dimensão da porta e, também, verificará se a dimensão intermediária
do colchão (largura do colchão) é menor ou igual à maior
dimensão da porta. Caso o resultado seja positivo, exibirá a mensagem S
. Caso contrário, exibirá a mensagem N
.
Esta questão já foi testada
, submetida
e devidamente aprovada
no site URI
sob a linguagem de programação Python 3
.
Só para constar, esta questão levou apenas 0.036 s para ser executada no site do URI.
Answered by Solkarped on January 2, 2022
O código está um pouco confuso, e pelo que deu para ler no enunciado não deve pedir 3 entradas e quebrar em partes, deve ler uma entrada e quebrar (odeio isso, costuma dar problemas, mas vamos fazer o que o exercício pede). Depois deve pedir um dado para ser quebrado em duas partes. Curiosamente uma parte do código fez de um jeito e o outro de outro jeito, mas ambos errados de acordo com o demonstrado na página.
Deixei a exceção exposta assim embora isso não é um código bem feito, mas serve como exercício principalmente porque ele não pede para tratar adequadamente, mas tenha isso em mente.
entrada = input("A B C").split()
A, B, C = int(entrada[0]), int(entrada[1]), int(entrada[2])
if A >= 1 and A <= 300 and B >= 1 and B <= 300 and C >= 1 and C <= 300:
pass
else:
raise ValueError("Deu Erro")
entrada = input("Qual a altura e largura").split()
H, L = int(entrada[0]), int(entrada[1])
if H >= 1 and H <= 250 and L >= 1 and L <= 250:
pass
else:
raise ValueError("Deu Erro")
if (A and B) > (H and L) or (A and C) > (H and L) or (B and C) > (H and L):
print ("N")
else:
print("S")
Veja funcionando no ideone. E no repl.it. Também coloquei no GitHub para referência futura.
Answered by Maniero on January 2, 2022
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP