#include using namespace std; typedef double ld; ld critical_x(ld const a,ld const b,ld const c){ return a==0? 0: -b/(2*a); } ld critical_point(ld const a,ld const b,ld const c){ // ld const x=critical_x(a,b,c); // return a*powl(x,2)+b*x+c; return c-powl(b,2)/4/a; } ld solve(vector x){ int const n=x.size(); vector interesting; for (int i=0; i=0; j--){ u+=1, v-=2*x[j], w+=powl(x[j],2); interesting.push_back(critical_x(u,v,w)); } } sort(interesting.begin(),interesting.end()); vector dp[2]; dp[0].assign(interesting.size(),0); for (int i=0; i