#include <LEDA/set.h>

void pset( set<int> &S, string s ) {
  cerr << s << " { ";
  int i;
  bool first = true;
  forall( i, S ) {
    if( first ) first = false; else cerr << ", ";
    cerr << i;
  }
  cerr << " }\n";
}

/* void pset( set<int> S, string s ) {
  cerr << s << " { ";
  int i;
  bool first = true;
  forall( i, S ) {
    if( first ) first = false; else cerr << ", ";
    cerr << i;
  }
  cerr << " }\n";
} */

int main( void ) {
  set<int> a;
  set<int> b;
  set<int> c;

  a.insert( 1 );
  a.insert( 2 );
  a.insert( 4 );
  a.insert( 101 );
  a.insert( -10 );
  b.insert( 4 );
  b.insert( 5 );
  b.insert( 6 );
  b.insert( 50 );

  pset( a, "A == " );
  pset( b, "B == " );
  pset( c = a & b, "A & B == " );
  pset( c = a + b, "A + B == " );
  pset( c = a - b, "A - B == " );
  pset( c = b - a, "B - A == " );
  pset( a += b, "A += B == " );
  pset( a, "A == " );
  pset( b, "B == " );
  pset( a -= b, "A -= B == " );
  pset( a, "A == " );
  pset( b, "B == " );
  pset( a = b, "A = B == " );
  pset( a, "A == " );
  pset( b, "B == " );

  return 0;
}
