Định nghĩa abstract class Shape có abstract double Area(). Lớp Circle (r), Rect (w,h), Tri (b,h) kế thừa Shape override Area: pirr (dùng Math.PI), wh, 0.5b*h. Định nghĩa lớp ShapeBag chứa List-style (dùng Shape[] với capacity). 3 indexer: this[int i] → Shape ở vị trí i; this[string name] với name ∈ {circle,rect,tri} → TỔNG diện tích tất cả shape loại đó; this[int lo, int hi] → TỔNG diện tích từ lo đến hi. Đọc n, n dòng "circle r" / "rect w h" / "tri b h". Đọc q, mỗi truy vấn "AT i" → in tên loại (circle|rect|tri); "TYPE name" → in tổng diện tích format "0.00" invariant; "RANGE lo hi" → in tổng format "0.00".
Dòng 1: n. n dòng tiếp: shape. Dòng tiếp: q. q dòng truy vấn.
1 <= n <= 100; 1 <= q <= 100; tham số shape là số nguyên 0..1000.
Mỗi truy vấn in một dòng.
Ví dụ:
Đầu vào:
3
circle 1
rect 2 3
tri 4 5
3
AT 0
TYPE rect
RANGE 0 2
Đầu ra:
circle
6.00
19.14
Giải thích:
Đang tải editor...