#include<iostream>//函数形参不能和私有变量名相同,运行时编译器会有歧义出错
using namespace std;
class shape
{
    public:
    virtual float getarea()
    {  return 0.0; }
};
class retangle:public shape
{
    int l,r;
    public:
    void setretangle(int x,int y)
    {
    l=x;
    r=y;
    }
    virtual float getarea()
    {
    return l*r;
    }
};
class circle :public shape
{
    int r;
    public:
    void setcircle(int d)
    {
    r=d;
    }
    float virtual getarea()
    {
    return r*r*3.14;
    }
};
class square:public shape
{
    int a;
    public:
    void setsquare(int e)
    {
    a=e;
    }
    float virtual getarea()
    {
    return a*a;
    }
};
int main()
{
    int l,r,a,b;
    cin>> l >> r>>b >>a;
    retangle x;
    circle y;
    square z;
    x.setretangle(l, r);
    y.setcircle(b);
    z.setsquare(a);
    cout <<x.getarea()<<endl;
    cout <<y.getarea()<<endl;
    cout <<z.getarea()<<endl;
    return 0;
}