#include <iostream>
#include<cmath>
using namespace std;
class Point{
private:
double x,y;
public:
Point(double x, double y){
this->x=x;
this->y=y;
}
void setVar(double x, double y){
this->x=x;
this->y=y;
}
double getX(){return x;}
double getY(){return y;}
double calculateDistFromOrigin(){
return sqrt(x*x+y*y);
}
};
class Point3D : private Point{
private:
double z;
public:
Point3D(double x, double y, double z): Point(x, y){
this->z=z;
}
void setVar(double x, double y, double z){
Point::setVar(x,y); ////
this->z=z;
}
double getXDel(){return getX();}
double getYDel(){return getY();}
double getZ(){return z;}
double calculateDistFromOrigin(){
return sqrt(getX()*getX()+getY()*getY()+getZ()*getZ());
}
};
int main(){
Point3D p(1.2, 2.5, 3);
p.calculateDistFromOrigin();
//cout<<"(x,y,z)="<<"("<<p.getX()<<","<<p.getY()<<","<<p.getZ()<<")"<<endl;
cout<<"(x,y,z)="<<"("<<p.getXDel()<<","<<p.getYDel()<<","<<p.getZ()<<")"<<endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTxjbWF0aD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY2xhc3MgUG9pbnR7CnByaXZhdGU6CiAgICBkb3VibGUgeCx5OwpwdWJsaWM6CiAgICBQb2ludChkb3VibGUgeCwgZG91YmxlIHkpewogICAgICAgIHRoaXMtPng9eDsKICAgICAgICB0aGlzLT55PXk7CiAgICB9CiAgICB2b2lkIHNldFZhcihkb3VibGUgeCwgZG91YmxlIHkpewogICAgICAgIHRoaXMtPng9eDsKICAgICAgICB0aGlzLT55PXk7CiAgICB9CiAgICBkb3VibGUgZ2V0WCgpe3JldHVybiB4O30KICAgIGRvdWJsZSBnZXRZKCl7cmV0dXJuIHk7fQogICAgZG91YmxlIGNhbGN1bGF0ZURpc3RGcm9tT3JpZ2luKCl7CiAgICAgICAgcmV0dXJuIHNxcnQoeCp4K3kqeSk7CiAgICB9Cn07CgoKY2xhc3MgUG9pbnQzRCA6IHByaXZhdGUgUG9pbnR7CnByaXZhdGU6CiAgICBkb3VibGUgejsKcHVibGljOgogICAgUG9pbnQzRChkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSB6KTogUG9pbnQoeCwgeSl7CiAgICAgICAgdGhpcy0+ej16OwogICAgfQogICAgdm9pZCBzZXRWYXIoZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUgeil7CiAgICAgICAgUG9pbnQ6OnNldFZhcih4LHkpOyAvLy8vCiAgICAgICAgdGhpcy0+ej16OwogICAgfQogICAgCiAgICBkb3VibGUgZ2V0WERlbCgpe3JldHVybiBnZXRYKCk7fQogICAgZG91YmxlIGdldFlEZWwoKXtyZXR1cm4gZ2V0WSgpO30KICAgIGRvdWJsZSBnZXRaKCl7cmV0dXJuIHo7fQogICAgZG91YmxlIGNhbGN1bGF0ZURpc3RGcm9tT3JpZ2luKCl7CiAgICAgICAgcmV0dXJuIHNxcnQoZ2V0WCgpKmdldFgoKStnZXRZKCkqZ2V0WSgpK2dldFooKSpnZXRaKCkpOwogICAgfQp9OwoKCmludCBtYWluKCl7CiAgICBQb2ludDNEIHAoMS4yLCAyLjUsIDMpOwogICAgcC5jYWxjdWxhdGVEaXN0RnJvbU9yaWdpbigpOwogICAgCiAgICAvL2NvdXQ8PCIoeCx5LHopPSI8PCIoIjw8cC5nZXRYKCk8PCIsIjw8cC5nZXRZKCk8PCIsIjw8cC5nZXRaKCk8PCIpIjw8ZW5kbDsKICAgIGNvdXQ8PCIoeCx5LHopPSI8PCIoIjw8cC5nZXRYRGVsKCk8PCIsIjw8cC5nZXRZRGVsKCk8PCIsIjw8cC5nZXRaKCk8PCIpIjw8ZW5kbDsKICAgIAogICAgcmV0dXJuIDA7Cn0K