```html <pre><code>class Base { public: virtual void foo(); }; class Derived : public Base { public: void foo() override; }; </code></pre> <p>رسم بياني لتسلسل الفئات مع دوال افتراضية</p> ```

C# Hard classes

مهمة «```html <pre><code>class Base { public: virtual void foo(); }; class Derived : public Base { public: void foo() override; }; </code></pre> <p>رسم بياني لتسلسل الفئات مع دوال افتراضية</p> ```»

قم بتطوير نظام من الفئات لتمثيل التسلسل الهرمي للأشكال الهندسية باستخدام طريقة افتراضية لحساب المساحة. تحتوي الفئة الأساسية 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