// Error a propósito: descomprimir hasta que se acaben los bits, sin mirar el tamaño original.
#include <iostream>
#include <string>

namespace {

// a = 1, b = 0: un árbol con dos hojas. Decodifica cada bit de una cadena.
std::string decode(const std::string& bits) {
    std::string out;
    for (char bit : bits) {
        out += bit == '1' ? 'a' : 'b';
    }
    return out;
}

}  // namespace

int main() {
    // El texto "aab" da los bits 110. El último byte se rellena con ceros hasta 8 bits.
    std::string bits = "110";
    std::string byte = bits + std::string(8 - bits.size(), '0');
    std::cout << "original: aab\n";
    std::cout << "bits en el archivo: " << byte << "\n";
    std::cout << "sin mirar el tamano: " << decode(byte) << "\n";
    std::cout << "con tamano 3: " << decode(byte.substr(0, 3)) << "\n";
    return 0;
}
