#define BE(v) v.begin(), v.end() template < class iter > void view(iter b, iter e) { iter it; for (it=b;it!=e;it++) { cout << *it << " "; } cout << "\n"; } template void Sunion(set &a, set b, set c) { a.clear(); set_union(BE(b),BE(c),inserter(a,a.begin())); } template void Sintersection(set &a, set b, set c) { a.clear(); set_intersection(BE(b),BE(c),inserter(a,a.begin())); }