AnswerBun.com

EOFError: EOF when reading a line

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.

2 Answers

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

Add your own answers!

Related Questions

Por que a função retorna o valor undefined

2  Asked on September 26, 2021 by lucas-ribeiro

         

Executar evento em botão tkinter

1  Asked on March 18, 2021 by rodrigo-cesarino

   

como executar uma procedure com parametro em php

1  Asked on March 6, 2021 by teste1234

   

Criar uma Trigger com JOIN para duplicar os dados

1  Asked on March 5, 2021 by richard-lucas

   

ConcurrentModificationException como proceder?

2  Asked on February 28, 2021 by roknauta

   

Materialize.css inserir icon por cima de uma imagem do card

1  Asked on February 26, 2021 by laranja-mecnica

     

Consultar grupos de distribuição do Active Directory

1  Asked on February 25, 2021 by renato-souza

 

Capturar dados de classes com python

0  Asked on February 24, 2021 by bruno-rayol

     

Como faço para não precisar ficar fazendo requisição toda hora a api?

1  Asked on February 24, 2021 by eduardo-nogueira

     

Como abrir ou fechar todos os itens de um Accordion

1  Asked on February 23, 2021 by fabrcio

     

Utilizar DataTable com Lazy dentro de vários p:tab

0  Asked on February 22, 2021 by ramon-borges

         

Renomear Extent Report após execução dos testes

0  Asked on February 22, 2021 by julliane-freitas

     

Números Palíndromos em C

1  Asked on February 21, 2021 by matheusramos43

 

Preencher lista e finalizar laço python

2  Asked on February 21, 2021 by oroborus_0

       

Formatação CSS para geração de PDF

1  Asked on February 20, 2021 by amanda-lima

   

Identificar um com jQuery

3  Asked on February 19, 2021

   

Ask a Question

Get help from others!

© 2023 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, MenuIva, UKBizDB, Menu Kuliner, Sharing RPP, SolveDir