// Clave entera que cuenta cuántas veces se compara. Solo tiene operator<.
#ifndef COUNTED_KEY_H
#define COUNTED_KEY_H

#include <ostream>

struct CountedKey {
    int value = 0;
    inline static long comparisons = 0;

    bool operator<(const CountedKey& other) const {
        comparisons++;
        return value < other.value;
    }
};

inline std::ostream& operator<<(std::ostream& out, const CountedKey& key) {
    return out << key.value;
}

#endif
