This one is sneaky - I'd go with D, and here's why the age-range constraint matters.
Start with what we know: Cabin A has the 4 oldest with sum 110, Cabin B has the 3 youngest, Cabin B + Cabin C sums to 105. Statement 1 tells us Cabin C = 60, so Cabin B = 45. Statement 2 tells us Cabin B = 45, so Cabin C = 60. Both statements give us the same derived totals, so we only need to check if one is sufficient.
The key question is: knowing C has total age 60, can we determine how many people are in C?
First, establish bounds on C's age range. Since A has the 4 oldest, to minimize A's youngest member, pack the 4 A-members as close together as possible: if A_min is the youngest, then A_min + (A_min+1) + (A_min+2) + (A_min+3) <= 110, which gives A_min >= 26. So every Cabin C member has age <= 25.
Since B has the 3 youngest summing to 45, to maximize B's oldest member, pack B together too: B_max + (B_max-1) + (B_max-2) >= 45 means B_max >= 16. But the constraint B ages < C ages means C_min >= B_max + 1 >= 17.
So C members have distinct integer ages in the range [17, 25].
Now: how many distinct integers from {17,...,25} can sum to 60?
- 2 members: maximum is 24 + 25 = 49 < 60. Impossible.
- 3 members: minimum is 17+18+19 = 54, maximum is 23+24+25 = 72. 60 is in range - works (e.g., 19+20+21 = 60).
- 4 members: minimum is 17+18+19+20 = 74 > 60. Impossible.
So C must have exactly 3 people. Statement 1 is sufficient by itself, and by symmetry so is Statement 2.
Answer: D.
The E trap is real - it feels like knowing only the sum shouldn't tell you the count. But the age-ordering constraints box in the possible values so tightly that the count is forced.