import javabooklet.*;

// soluzioni degli esercizi 1 e 3
// della Prova scritta del 5/7/2002

// + esercizio supplementare "palindroma"

class Esame1 {

/** versione con il while */
  static boolean speculari(int[] a, int[] b) {
    int n = a.length;
    if(b.length != n) return false;
    else {
      int i = 0;
      while(i < n && a[i] == b[n-1-i]) i++;
      return i==n;
    }
  }

/** versione con il for */
  static boolean specular(int[] a, int[]b) {
    int n = a.length;
    if(b.length != n) return false;
    else {
      for(int i = 0; i < n; i++) {
        if(a[i] != b[n-1-i]) return false;
      }
      return true;
    }
  }

/** versione con due indici che scorrono */
  static boolean palin(String s) {
    int n = s.length();
    int i = 0, j = n-1;
    while(i < j && s.charAt(i) == s.charAt(j)) {
      i++; j--;
    }
    return i >= j;
  }

/** restituisce true se la stringa-argomento
    è palindroma, false se non lo è
    (palindroma = uguale alla sua inversa,
     ad esempio "anna", "anilina")
*/

/*  versione con una sola variabile-indice */
  static boolean palindr(String s) {
    int n = s.length();
    int i = 0;
    while(i < (n-1)/2 && s.charAt(i) == s.charAt(n-1-i)) {
      i++;
    }
    return i >= (n-1)/2;
  }

  static String eliminaSpazi(String s) {
    int n = s.length();
    char[] a = s.toCharArray();
    int i = 0, j = 0;
    while(i < n) {
      if(a[i] != ' ') {
        a[j] = a[i];
        j++;
      }
      i++;
    }
    return new String(a,0,j);
  }

  static boolean frasePalindroma(String s) {
    return palin(eliminaSpazi(s));
  }

  public static void main(String args[]) {
    int[] ar1 = {3,5,2,8,30,21};
    int[] ar2 = {21,30,8,2,5,21};
    int[] ar3 = {21,30,8,2,5};

    System.out.println(specular(ar1,ar2));
    System.out.println(specular(ar1,ar3));
    ar3 = new int[] {21,30,8,2,5,3};
    System.out.println(specular(ar1,ar3));

    int[] vuoto1 = {};
    int[] vuoto2 = {};
    System.out.print("i vuoti sono ==? ");
    System.out.println(vuoto1 == vuoto2);
    System.out.print("i vuoti sono equal? ");
    System.out.println(vuoto1.equals(vuoto2));
    System.out.print("i vuoti sono speculari? ");
    System.out.println(specular(vuoto1,vuoto2));


    System.out.println("stringa vuota "+ palindr(""));
    System.out.println(palin(""));
    System.out.println(palindr("madam I'm adam"));
    System.out.println(palindr("madamImadam"));
    System.out.println(palindr("adda"));
    System.out.println(palindr("anilina"));
    System.out.println(palindr("2002"));
    System.out.println(palindr("ottetto"));
    System.out.println(palindr(
      "I TOPI NON AVEVANO NIPOTI"));
    System.out.println(frasePalindroma(
      "I TOPI NON AVEVANO NIPOTI"));
    System.out.println(palindr(
      "ANNA E OTTO ONORARONO OTTO E ANNA"));

    Cerchio[] cerchi = new Cerchio[6];
    for(int i = 0; i < 6; i++) {
      double r = Input.readDouble();
      cerchi[i] = new Cerchio(r);
    }
    double areaMin = cerchi[0].area();
    double circMax = cerchi[0].circ();
    double area;
    double circ;
    for(int i = 1; i < 6; i++) {
      area = cerchi[i].area();
      circ = cerchi[i].circ();
      if(area < areaMin) areaMin = area;
      if(circ > circMax) circMax = circ;
    }
    System.out.println(areaMin +" "+ circMax);
  }

}

class Cerchio {
  private double raggio;

  Cerchio(double raggio) {
    this.raggio = raggio;
  }

  double circ() {
    return 2*Math.PI*raggio;
  }

  double area() {
    return Math.PI*raggio*raggio;
  }
}

