#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define N 56
#define M 29
#define pi acos(-1.0L)
#define sqr(x) ((x)*(x))

double x[N], w[N], fp[N];

double f(double X){// CHEAT !!!
  return(/* A COMPLETER */);
}


void IPoints(){// intrerpolating points
  int k; 
  for(k=0;k<N;k++){
    //    x[k]=(double)k*pi/(double)(N-1);
    //    x[k] = -1.0 + (2.0*(double)k/(double)(N-1));
    /* A COMPLETER */

  }
}

void IPoints_Ch(){// Chebyshev points
  int k; 
  for(k=0;k<N;k++){
    /* A COMPLETER */
  }

}

void fPoints(){
  int k;
  for(k=0;k<N;k++){
    fp[k] = f(x[k]);
  }

}

void W(){// the weights
  int j,k;
  double temp;

  for(j=0;j<N;j++){
    temp = 1.0;
    for(k=0;k<j;k++){
      temp = temp * (x[j]-x[k]);}
    for(k=(j+1);k<N;k++){
      temp = temp * (x[j]-x[k]);}
    w[j] = 1.0 / temp ; 
  }

}


double l(double X){
  double temp; 
  int j;

  temp = 1.0;
  for(j=0;j<N;j++){
    temp = temp * (X-x[j]);}
  return(temp);
}

main(){
  int j,m;
  double temp, X;

  IPoints_Ch(); // define the points
  W();       // compute the weights

  
  for(m=1; m < M ; m++){
    X = ; /* A COMPLETER */
    printf("%g\t%g\n", X, l(X));
  }

}




