using the code at Global optimization with ParametricIPOPTMinimize and changing the sign of the objective function, since the code does minimization:
In[11]:= n = 56;
d1 = 10;
d2 = 15;
d3 = 16;
Y = 1000000;
In[18]:= iMin[-Y/100*(0*p0 + d1*p1 + d2*p2 + d3*p3 + 100*p100),
List @@ (p0 + p1 + p2 + p3 + p100 == 1 && p0 >= 0 && p1 >= 0 &&
p2 >= 0 && p3 >= 0 && p100 >= 0 &&
p0^n + n*p0^(n - 1)*p1 + n*p0^(n - 1)*p2 + n*p0^(n - 1)*p3 +
n*(n - 1)/2*p0^(n - 2)*p1^2 + n*(n - 1)*p0^(n - 2)*p1*p2 +
n*(n - 1)/2*p0^(n - 2)*p2^2 + n*(n - 1) p0^(n - 2)*p1*p3 +
n (n - 1) p0^(n - 2)*p2*p3 +
n (n - 1) (n - 2)/6*p0^(n - 3) p1^3 +
n (n - 1) (n - 2)/2*p0^(n - 3)*p1^2*p2 +
n (n - 1) (n - 2)/2*p0^(n - 3)*p1*p2^2 +
n (n - 1) (n - 2)/2*p0^(n - 3)*p1^2*p3 +
n (n - 1) (n - 2) p0^(n - 3)*p1*p2*p3
== 1/20), Thread[{{p0, p1, p2, p3, p100}, 0, 1}], 10, 0]
During evaluation of In[18]:= {{Infeasible_Problem_Detected,8},{Solve_Succeeded,2}}
Out[18]= {-53920.9, {p0 -> 0.925934, p1 -> 0.0127001, p2 -> 0.0099051,
p3 -> 0.000352082, p100 -> 0.0511088}}