Inputs e outputs rápidos
📚 Introdução
Geralmente usaremos os métodos padrões de input e output do Python, porém, as vezes os exercícios requerem que façamos centenas ou mais de leituras e escritas, nesses casos, os métodos padrões custam muito tempo, então temos que usar métodos mais rápidos.
📥 Inputs
O método padrão de input do Python é o input()
.
Quando queremos ler mais de um valor na mesma linha, podemos usar o split()
.
Se quisermos ler uma lista de valores, podemos usar o map()
.
O código acima lê dois valores inteiros na mesma linha.
Se precisarmos que os valores sejam armazenados em uma lista, podemos usar a coompreensão de listas.
Esse métodos é mais lento que o map()
, então só o use se for necessário.
Porém, o jeito mais rápido de ler valores em python é usando o sys.stdin.readline()
.
Temos que manter algumas coisas em mente ao usar o sys.stdin.readline()
:
Ele lê uma linha inteira, então se quisermos ler mais de um valor na mesma linha, temos que usar o
split()
.Ele lê uma string, então se quisermos ler um inteiro, temos que usar o
int()
.Ele lê o no final da linha, isso normalmente não afeta em nada, pois o
split()
eint()
já o removem, porém se quisermos ler uma única string a cada linha, temos que usar o.rstrip()
.
📤 Outputs
O método padrão de output do Python é o print()
.
Porém, o jeito mais rápido de escrever valores em python é usando o sys.stdout.write()
.
Assim como no sys.stdin.readline()
, temos que manter algumas coisas em mente ao usar o sys.stdout.write()
:
Ele só aceita strings, então se quisermos escrever um inteiro, temos que usar o
str()
ou f-strings.Ele não coloca o automaticamente no final da linha, isso é importante pois os juízes de código não aceitam a resposta se não tiver o no final da linha.
🧑🏫 Exercícios
Nenhum exercício listado aqui precisam de fast io, porém, eles são bons para treinar o uso do sys.stdin.readline()
e do sys.stdout.write()
, assim quando você encontrar um onde o tempo é um problema, usar esses métodos é um bom truque a se aplicar.
Exercício 1248 do Beecrowd, que caiu na OBI 2012.
Exercício 2408 do Beecrowd, que caiu na OBI 2012.
Exercício 2420 do Beecrowd, que caiu na OBI 2012.
Exercício 1410 do Beecrowd, que caiu na ACM/ICPC South America Contest 2007.
Exercício 2770 do Beecrowd, que caiu na V Maratona Norte Mineira de Programação, não se assuste com o nível 7 desse exercício, mantenha a calma e leia o que se pede.
Last updated