Mas o que é o básico?
ios_base::sync_with_stdio(0); cin.tie(0);Isso para uso apenas com cin e cout. Isso porque:
ios_base::sync_with_stdio(0);
desativa a sincronização entrescanf
ecin
, assim comoprintf
ecout
, o que implica que para cada canal de entrada/saída, você só pode usar ou a função da biblioteca padrão do C++ (cin
/cout
) ou do C (printf
/scanf
)cin.tie(0)
só melhora o desempenho docin
ecout
, fazendo com que a entrada e a saída ocorram separadamente (ou seja, que nenhum flush aconteça emcout
antes de toda operação decin
)- Cuidado com
cin.tie(0)
em problemas interativos, ele torna tudo mais difícil. Em geral, mesmo sem ele, você sempre deve dar flush (usando endl por exemplo) para ter certeza de que a saída será produzida e não bufferizada.
Para ganhar ainda mais velocidade, é possível fazer sua própria função de leitura de inteiros, strings, etc. Porém, na maioria dos casos isso não é necessário, é só otimização prematura.
Fontes: