5 #include <unordered_map>     6 #include <unordered_set>    15   "<" #S ":" __HERE__ << '>' << S << "</" << #S << '>'    17 #define SHOW(S) std::cerr << S << std::endl    19 #define SHOWV(S) SHOW(V(S))    21 #define __HERE__ __FILE__ ":" << __LINE__    23 #define SHOWH(S) SHOW(__HERE__ << ": " << S)    27   template <
typename T, 
typename Compare, 
typename Alloc>
    29   operator<<(ostream& o, set<T, Compare, Alloc>& ts)
    32     for (
const auto& t: ts)
    42   template <
typename Key,  
typename T,
    43             typename Hash, 
typename KeyEqual, 
typename Alloc>
    45   operator<<(ostream& o, unordered_map<Key, T, Hash, KeyEqual, Alloc>& ts)
    48     for (
const auto& t: ts)
    52         o << t.first << 
":" << t.second;
    58   template <
typename Key, 
typename Hash, 
typename KeyEqual, 
typename Alloc>
    60   operator<<(ostream& o, unordered_set<Key, Hash, KeyEqual, Alloc>& ts)
    63     for (
const auto& t: ts)
    73   template <
typename T, 
typename Alloc>
    75   operator<<(ostream& o, vector<T, Alloc>& ts)
    78     for (
const auto& t: ts)