============================================================
 TUPLE & SET EXPLORER - Demo Run
============================================================

--- Tuple basics and unpacking ---
  point = (3, 4), unpacked: x=3, y=4
  rgb = (255, 128, 0), unpacked ignoring green: r=255, b=0

--- Tuple immutability ---
  Correctly raised TypeError: 'tuple' object does not support item assignment
  This is a FEATURE: tuples are safe to use as fixed records or dict keys.

--- Tuple as dictionary key ---
  grid[(0,0)] = origin
  grid[(1,1)] = diagonal
  (A list couldn't be used as a key -- lists are unhashable/mutable.)

--- Set operations ---
  Group A: ['Alice', 'Bob', 'Carol', 'Dave']
  Group B: ['Carol', 'Dave', 'Eve', 'Frank']
  Union: ['Alice', 'Bob', 'Carol', 'Dave', 'Eve', 'Frank']
  Intersection: ['Carol', 'Dave']
  Difference (A - B): ['Alice', 'Bob']
  Symmetric difference: ['Alice', 'Bob', 'Eve', 'Frank']

--- Deduplication via set (ordering is lost) ---
  Original: [3, 1, 4, 1, 5, 9, 2, 6, 5, 3]
  Deduped (unordered): [1, 2, 3, 4, 5, 6, 9]  <- had to sort to compare meaningfully

--- Fast membership testing ---
  99999 in big_set: True  (near-instant regardless of set size)

--- Unique visited coordinates (tuples in a set) ---
  Path taken: [(0, 0), (1, 0), (1, 1), (0, 0), (2, 1), (1, 1)]
  Unique tiles visited: [(0, 0), (1, 0), (1, 1), (2, 1)]

============================================================
 Assignment: find_common_and_unique
============================================================
  Common: ['Carol', 'Dave']
  Unique to list1 (Group A): ['Alice', 'Bob']
  Unique to list2 (Group B): ['Eve', 'Frank']
