#include <stdio.h>
#include <iostream>
#include <vector>
#include <list>
#include <cmath>
#include <fstream>
#include <algorithm>
#include <string>
#include <queue>
#include <set>
#include <map>
#include <complex>
#include <iterator>
#include <cstdlib>
#include <cstring>
#include <sstream>

using namespace std;

#define EPS (1e-10)
#define EQ(a,b) (abs((a) - (b)) < EPS)
#define EQV(a,b) (EQ((a).real(),(b).real()) && EQ((a).imag(),(b).imag()))

typedef complex<double> P;
typedef long long ll;

const int MAX_SIZE = 10000;

void solve(){
    int n,k,t,u,v,l;
    cin>>n>>k>>t>>u>>v>>l;
    int d[1000];
    for(int i = 0; i < n; i++)
        cin>>d[i];
    d[n]=l;
    double sumS=0;
    int prvP=0;
    double left=0;
    for(int i = 0; i <= n; i++){
        int move=-prvP+d[i];
        // ±Ì£ðÅ«éÀèÁ¬µÄÊß·é
        double s=(double)move/v;
        if(s>left){
            sumS+=left;
            double leftDis=move-v*left;
            sumS+=(double)leftDis/u;
            left=0;
        }
        else{
            left-=s;
            sumS+=s;
        }
        if(i==n)
            break;
        // ¡Éñ¶ñðÇÁÅ«éÈç
        if(left<=k*t)
            left+=t;
        else{
            left=(k+1)*t;
        }
        prvP=d[i];
    }
    printf("%.8f\n",sumS);
}
int main(){
    solve();
    return 0;
}