#include <stdio.h>
#include <assert.h>

#define MAX 100

double AplicaPol( int n, double q[MAX+1], double x ) {
  int i;  /* grau do monĂ´mio */
  double     pot,     /* x^i */
    soma;     /* acumula soma dos monĂ´mios aplicados a x */
  soma = 0; pot = 1;
  for ( i = 0; i <= n; i++ ) {
    soma = soma + q[i] * pot;
    pot = pot * x;
  }
  return soma;
}

int main () {
  int n,		      /* grau */
    i;			      /* n. de elementos vistos */
  double p[MAX+1],	      /* coeficientes do polinomio*/
    x0,			      /* ponto */
    pdex0;
  
  scanf ( "%d", &n );	      /* le tamanho da sequencia */
  assert ( n <= MAX );

  for ( i = 0; i <= n; i++ )  /* le cada coeficiente */
    scanf ( "%lf", &p[i] );	

  scanf ( "%lf", &x0 );	      /* leitura do ponto x0 */

  pdex0 = AplicaPol( n, p, x0 );
    
  printf("%g\n", pdex0 );	 

  return 0;
}