#include #define _overload(_1,_2,_3,name,...) name #define _rep(i,n) _range(i,0,n) #define _range(i,a,b) for(int i=int(a);i> n >> s >> writer_id; assert(3<= n and n <=77777); assert(1<= s and s <=500000); assert(0<= writer_id and writer_id <= n-1); vector a(n); for(auto &elem:a){ cin >> elem; assert(0 <= elem and elem <= 100000000); } int writer_score=a[writer_id]+100*s; vector b; rep(i,n) if(i!=writer_id) b.push_back(a[i]); sort(begin(b),end(b)); using R=long double; R ans=1.0; const int total=n-1; rep(solved,total){ int add_score=yukicoder(s,solved+1); int valid=upper_bound(begin(b),end(b),writer_score-add_score)-begin(b); ans*=1.0*(valid-solved)/(total-solved); } cout.precision(20); cout << fixed << ans << endl; return 0; }