#include using namespace std; #define rep(i,a,b) for(int i=a;i> N >> S >> ID; rep(i, 0, N) { if (i < ID) scanf("%d", &A[i]); else if (i == ID) scanf("%d", &MY); else scanf("%d", &A[i - 1]); } N--; sort(A, A + N, greater()); MY += 100 * S; // 1位が最下位で勝てないなら無理 if (MY < A[0] + sc(N)) { printf("0\n"); return 0; } double ans = 1; rep(i, 0, N) { int lo = 0, hi = N; while (lo + 1 != hi) { int mi = (lo + hi) / 2; if (A[i] + sc(mi) <= MY) hi = mi; else lo = mi; } // hi位以下であれば勝てる int ok = N - hi + 1; if (ok < i) { printf("0\n"); return 0; } ans *= (ok - i) * 1.0 / (N - i); } printf("%.10f\n", ans); }