dp 1234567891011121314double a[maxn];int n;double calc(double k) { double res1 = 0; //正最大 double res2 = 0; //负最大 double sum1 = 0, sum2 = 0;//当前正负最大 for (int i = 1; i <= n; i++) { sum1 = max(sum1 + a[i]+k, a[i]+k); res1 = max(sum1, res1); sum2 = min(sum2 + a[i]+k, a[i]+k); res2 = min(sum2, res2); } return max(fabs(res1), fabs(res2));}