Граф наследования классов с виртуальными методами

C# Сложный classes

Задача «Граф наследования классов с виртуальными методами»

Разработайте систему классов для представления иерархии геометрических фигур с виртуальным методом вычисления площади. Базовый класс Shape содержит виртуальный метод CalculateArea(), возвращающий 0. Класс Circle (радиус) переопределяет метод как π*r^2. Класс Rectangle (ширина, высота) — ширина*высота. Класс Triangle (основание, высота) — 0.5*основание*высота. Входные данные: число N — количество фигур, затем N строк с описанием фигур: "Circle радиус", "Rectangle ширина высота", "Triangle основание высота". Необходимо вычислить сумму площадей всех фигур с точностью до двух знаков после запятой.

Формат ввода

Целое число N (1 ≤ N ≤ 100). Далее N строк, каждая содержит название фигуры и её параметры: для Circle — одно целое число (радиус), для Rectangle — два целых числа (ширина и высота), для Triangle — два целых числа (основание и высота). Все параметры — положительные целые числа от 1 до 100.

Формат вывода

Одно вещественное число — сумма площадей всех фигур, округлённая до двух знаков после запятой.

Примеры

Пример 1

ВВОД
1 1 0
ВЫВОД
0

Пример 2

ВВОД
2 Rectangle 10 10 Triangle 5 8
ВЫВОД
120.00
main.cs