import java.io.* ;

/*************************************************************
 * Jest to bardzo prosta klasa wyj?tku.
 * @author Pawe? Rzechonek
 * @version 1.1
 *************************************************************/
class Wyjatek extends Exception
{
    /**
    Konstruktor.
    @param opis Opis przyczyny powsta?ego b??du.
    */
    public Wyjatek (String opis)
    {
        super(opis) ;
    }
}

/*************************************************************
 * Zadaniem tej klasy jest prezentacja operacji na standardowym
 * wej?ciu i wyj?ciu.
 * Klasa <b>CzytPisz</b> jest klas? prezentacji i zawiera
 * tylko metod? <b>main</b> i trzy referencje do obiekt?w
 * skojarzonych ze standardowym wej?ciem i wyj?ciem.
 * @author Pawe? Rzechonek
 * @version 1.3
 *************************************************************/
public class CzytPisz
{
    /** Obiekt reprezentuj?cy standardowe wej?cie (klawiatur?). */
    static BufferedReader klaw = new BufferedReader(new InputStreamReader(System.in)) ;
    /** Obiekt reprezentuj?cy standardowe wyj?cie (ekran). */
    static PrintStream ekr = System.out ;
    /** Obiekt reprezentuj?cy standardowe wyj?cie dla b??d?w (ekran). */
    static PrintStream bl = System.err ;

    /** Funkcja do obliczania ?redniej arytmetycznej liczb zapisanych w tablicy. */
    static double srAryt (double[] t)
    {
        double r = 0 ;
        for (int i=0 ; i<t.length ; i++) r += t[i] ;
        return r/t.length ;
    }
    /** Funkcja do obliczania ?redniej geometrycznej liczb zapisanych w tablicy. */
    static double srGeom (double[] t)
    {
        double r = 1 ;
        for (int i=0 ; i<t.length ; i++) r *= t[i] ;
        return Math.pow(r,1.0/t.length) ;
    }

    /**
    Funkcja <b>main</b> wypisuje na standardowe wyj?cie wszystkie dla b??d?w
    komunikaty zach?caj?ce do wprowadzenia danych ze standardowego wej?cia,
    a wyniki oblicze? s? posy?ane na standardowe wyj?cie bez ?adnych komentarzy.
    Program oblicza ?redni? arytmetyczn? i geometryczn? wprowadzonego ci?gu liczb.
    @param args Argumenty wywo?ania progamu.
    @throws Wyjatek Wyj?tek test zg?aszany, gdy dane wej?ciowe s? b??dnie podane.
    */
    public static void main (String[] args) throws Wyjatek
    {
        bl.print("podaj rozmiar tablicy: ") ;
        int n = 0 ;
        try
        {
            n = Integer.parseInt(klaw.readLine().trim()) ;
            if (n<=0||n>256) throw new Wyjatek("bledna wartosc (rozmiar tablicy)") ;
        }
        catch (IOException ex)
        {
            throw new Wyjatek("bledny podczas odczytu (rozmiar tablicy)") ;
        }
        catch (NumberFormatException ex)
        {
            throw new Wyjatek("bledny format liczby (rozmiar tablicy = "+n+")") ;
        }
        double[] t = new double[n] ;
        for (int i=0, k=0 ; i<n ; i+=k)
            try
            {
                bl.print("["+i+"] = ") ;
                String[] a = klaw.readLine().trim().split("\\s+") ;
                for (k=0 ; k<a.length ; k++)
                {
                    t[i+k] = Double.parseDouble(a[k]) ;
                }
            }
            catch (ArrayIndexOutOfBoundsException ex)
            {
                throw new Wyjatek("zbyt wiele danych w tablicy") ;
            }
            catch (IOException ex)
            {
                throw new Wyjatek("blad podczas odczytu ("+i+"-ty element w tablicy)") ;
            }
            catch (NumberFormatException ex)
            {
                throw new Wyjatek("bledny format liczby ("+i+"-ty element w tablicy)"+i) ;
            }
        bl.print("srednia arytmetyczna = ") ;
        ekr.println(srAryt(t)) ;
        bl.print("srednia geometryczna = ") ;
        ekr.println(srGeom(t)) ;
    }
}
