/*correct output*/
class nsu3 {
static double PI = acos(-1);
int compareTo(Shape3D o);
}
this.filled = filled;
}
return filled;
}
public int compareTo(Shape3D o){
// returns -1 if this<o, 0 if equal, 1 if this>o
double x = this.getVolume(), y = o.getVolume();
if(x<y) return -1;
if(x==y) return 0;
return 1;
}
abstract double getArea();
abstract double getVolume();
}
class Sphere extends Shape3D {
public Sphere
(double radius,
Boolean filled
) { super(filled);
this.radius = radius;
}
double radius;
public double getArea() {
return 4*PI*radius*radius;
}
public double getVolume() {
return 4*PI*radius*radius*radius/3.0;
}
@Override
return "Sphere{" +
"filled=" + filled +
", radius=" + radius +
'}';
}
}
class Cube extends Shape3D {
public Cube
(double side,
Boolean filled
) { super(filled);
this.side = side;
}
double side;
public double getArea() {
return 6*side*side;
}
public double getVolume() {
return side*side*side;
}
@Override
return "Cube{" +
"filled=" + filled +
", side=" + side +
'}';
}
}
public static void main
(String[] args
) { nsu3 nn = new nsu3();
nn.solve();
}
public void solve(){
Sphere sp = new Sphere(1, true);
Sphere sp2 = new Sphere(234, true);
System.
out.
println(sp.
getArea()); System.
out.
println(sp2.
getVolume()); System.
out.
println(sp.
compareTo(sp2
));
Cube cb = new Cube(234234, false);
System.
out.
println(cb.
getVolume()); System.
out.
println(cb.
compareTo(sp
)); System.
out.
println(cb.
toString()); }
}
Lypjb3JyZWN0IG91dHB1dCovCmltcG9ydCBzdGF0aWMgamF2YS5sYW5nLlN0cmljdE1hdGguYWNvczsKCmNsYXNzIG5zdTMgewogICAgc3RhdGljIGRvdWJsZSBQSSA9IGFjb3MoLTEpOwoKICAgIGludGVyZmFjZSBDb21wYXJhYmxlewogICAgICAgIGludCBjb21wYXJlVG8oU2hhcGUzRCBvKTsKICAgIH0KICAgIGFic3RyYWN0IGNsYXNzIFNoYXBlM0QgaW1wbGVtZW50cyBDb21wYXJhYmxlewogICAgICAgIHB1YmxpYyBTaGFwZTNEKEJvb2xlYW4gZmlsbGVkKSB7CiAgICAgICAgICAgIHRoaXMuZmlsbGVkID0gZmlsbGVkOwogICAgICAgIH0KICAgICAgICBCb29sZWFuIGZpbGxlZDsKICAgICAgICBCb29sZWFuIGlzRmlsbGVkKCl7CiAgICAgICAgICAgIHJldHVybiAgZmlsbGVkOwogICAgICAgIH0KICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmVUbyhTaGFwZTNEIG8pewogICAgICAgICAgICAvLyByZXR1cm5zIC0xIGlmIHRoaXM8bywgMCBpZiBlcXVhbCwgMSBpZiB0aGlzPm8KICAgICAgICAgICAgZG91YmxlIHggPSB0aGlzLmdldFZvbHVtZSgpLCB5ID0gby5nZXRWb2x1bWUoKTsKICAgICAgICAgICAgaWYoeDx5KSByZXR1cm4gLTE7CiAgICAgICAgICAgIGlmKHg9PXkpIHJldHVybiAwOwogICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICB9CiAgICAgICAgYWJzdHJhY3QgZG91YmxlIGdldEFyZWEoKTsKICAgICAgICBhYnN0cmFjdCBkb3VibGUgZ2V0Vm9sdW1lKCk7CiAgICB9CgogICAgY2xhc3MgU3BoZXJlIGV4dGVuZHMgU2hhcGUzRCB7CiAgICAgICAgcHVibGljIFNwaGVyZShkb3VibGUgcmFkaXVzLCBCb29sZWFuIGZpbGxlZCkgewogICAgICAgICAgICBzdXBlcihmaWxsZWQpOwogICAgICAgICAgICB0aGlzLnJhZGl1cyA9IHJhZGl1czsKICAgICAgICB9CiAgICAgICAgZG91YmxlIHJhZGl1czsKICAgICAgICBwdWJsaWMgZG91YmxlIGdldEFyZWEoKSB7CiAgICAgICAgICAgIHJldHVybiA0KlBJKnJhZGl1cypyYWRpdXM7CiAgICAgICAgfQogICAgICAgIHB1YmxpYyBkb3VibGUgZ2V0Vm9sdW1lKCkgewogICAgICAgICAgICByZXR1cm4gNCpQSSpyYWRpdXMqcmFkaXVzKnJhZGl1cy8zLjA7CiAgICAgICAgfQogICAgICAgIEBPdmVycmlkZQogICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CiAgICAgICAgICAgIHJldHVybiAiU3BoZXJleyIgKwogICAgICAgICAgICAgICAgICAgICJmaWxsZWQ9IiArIGZpbGxlZCArCiAgICAgICAgICAgICAgICAgICAgIiwgcmFkaXVzPSIgKyByYWRpdXMgKwogICAgICAgICAgICAgICAgICAgICd9JzsKICAgICAgICB9CiAgICB9CiAgICBjbGFzcyBDdWJlIGV4dGVuZHMgU2hhcGUzRCB7CiAgICAgICAgcHVibGljIEN1YmUoZG91YmxlIHNpZGUsIEJvb2xlYW4gZmlsbGVkKSB7CiAgICAgICAgICAgIHN1cGVyKGZpbGxlZCk7CiAgICAgICAgICAgIHRoaXMuc2lkZSA9IHNpZGU7CiAgICAgICAgfQogICAgICAgIGRvdWJsZSBzaWRlOwogICAgICAgIHB1YmxpYyBkb3VibGUgZ2V0QXJlYSgpIHsKICAgICAgICAgICAgcmV0dXJuIDYqc2lkZSpzaWRlOwogICAgICAgIH0KICAgICAgICBwdWJsaWMgZG91YmxlIGdldFZvbHVtZSgpIHsKICAgICAgICAgICAgcmV0dXJuIHNpZGUqc2lkZSpzaWRlOwogICAgICAgIH0KICAgICAgICBAT3ZlcnJpZGUKICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgewogICAgICAgICAgICByZXR1cm4gIkN1YmV7IiArCiAgICAgICAgICAgICAgICAgICAgImZpbGxlZD0iICsgZmlsbGVkICsKICAgICAgICAgICAgICAgICAgICAiLCBzaWRlPSIgKyBzaWRlICsKICAgICAgICAgICAgICAgICAgICAnfSc7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICBuc3UzIG5uID0gbmV3IG5zdTMoKTsKICAgICAgICBubi5zb2x2ZSgpOwogICAgfQogICAgcHVibGljIHZvaWQgc29sdmUoKXsKICAgICAgICBTcGhlcmUgc3AgPSBuZXcgU3BoZXJlKDEsIHRydWUpOwogICAgICAgIFNwaGVyZSBzcDIgPSBuZXcgU3BoZXJlKDIzNCwgdHJ1ZSk7CgogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihzcC5nZXRBcmVhKCkpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihzcDIuZ2V0Vm9sdW1lKCkpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihzcC5jb21wYXJlVG8oc3AyKSk7CgogICAgICAgIEN1YmUgY2IgPSBuZXcgQ3ViZSgyMzQyMzQsIGZhbHNlKTsKCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGNiLmdldFZvbHVtZSgpKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oY2IuY29tcGFyZVRvKHNwKSk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGNiLnRvU3RyaW5nKCkpOwogICAgfQp9Cg==