//package com.company; import java.io.*; import java.util.Scanner; public class Main { static float P = (float) Math.PI; public static void main(String[] args) throws IOException{ class Circle { public float Area(float r) { return (float) (P * r * r); } public float Perimeter(float r) { return (float) (2 * P * r); } } class Rect { public float Area(float a, float b) { return (float) (a * b); } public float Perimeter(float a, float b) { return (float) ((a+b)*2); } } class Triangle { public float Area(float a, float b, float c) { float pp = (a + b + c)/2; float ans = (float) Math.sqrt(pp * (pp-a) * (pp-b) * (pp-c)); return (float) (ans); } public float Perimeter(float a, float b, float c) { return (float) (a + b + c); } } class Elipse { public float Area(float a, float b) { return (float) (a * b * P); } public float Perimeter(float a, float b) { float ans = (float) (2 * P * (float) Math.sqrt((a*a + b*b)/2)); return (float) (ans); } } FileInputStream file = new FileInputStream("input.txt"); FileOutputStream fo = new FileOutputStream("output.txt"); PrintWriter out_data = new PrintWriter(fo); Scanner scan = new Scanner(file); float[] a = new float[100]; int i = 0; String S = scan.next(); //System.out.println(S); char[] ch = S.toCharArray(); a[0] = ch[0]; int test = 0; if(a[0] == (int) 'e')test = 1; else a[0] = a[0] - '0'; while(scan.hasNext()) { i++; a[i] = scan.nextInt(); } //ELIPSE CASE if(test == 1) { Elipse figure = new Elipse(); float p = figure.Perimeter(a[1], a[2]); float ar = figure.Area(a[1], a[2]); if(Math.round(p) == (float) (Math.floor(figure.Perimeter(a[1], a[2]) * 10)/10))out_data.println("P=" + Math.round(p)); else { float per = (float) (Math.floor(p * 10)/10); out_data.println("P=" + per); } if(Math.round(ar) == (float) (Math.floor(figure.Perimeter(a[1], a[2]) * 10)/10))out_data.println("A=" + Math.round(ar)); else { float are = (float) (Math.floor(ar * 10)/10); out_data.println("A=" + are); } } else if(i == 2) { Triangle figure = new Triangle(); float p = figure.Perimeter(a[0],a[1], a[2]); float ar = figure.Area(a[0],a[1],a[2]); if((float)(int)p == p)out_data.println("P=" + Math.round(p)); else { float per = (float) (Math.floor(p * 10)/10); out_data.println("P=" + per); } if((float)(int)ar == ar)out_data.println("A=" + Math.round(ar)); else { float are = (float) (Math.floor(ar * 10)/10); out_data.println("A=" + are); } } else if(i == 1) { Rect figure = new Rect(); float p = figure.Perimeter(a[0],a[1]); float ar = figure.Area(a[0],a[1]); if((float)(int)p == p)out_data.println("P=" + Math.round(p)); else { float per = (float) (Math.floor(p * 10)/10); out_data.println("P=" + per); } if((float)(int)ar == ar)out_data.println("A=" + Math.round(ar)); else { float are = (float) (Math.floor(ar * 10)/10); out_data.println("A=" + are); } } else if(i == 0) { Circle figure = new Circle(); float p = figure.Perimeter(a[0]); float ar = figure.Area(a[0]); if((float)(int)p == p)out_data.println("P=" + Math.round(p)); else { float per = (float) (Math.floor(p * 10)/10); out_data.println("P=" + per); } if((float)(int)ar == ar)out_data.println("A=" + Math.round(ar)); else { float are = (float) (Math.floor(ar * 10)/10); out_data.println("A=" + are); } } out_data.close(); } }