1 条题解
-
0
/***************************************** Problem Name : ******************************************/ #include <queue> #include <math.h> #include <stack> #include <stdio.h> #include <iostream> #include <string.h> #include <algorithm> using namespace std; #define LL long long const int N = 1e5 + 10; const double eps = 1e-5; int n , m; double a[N]; double g[N]; bool cheak(double x) { g[0] = 0; for(int j = 1 ; j<= n; j++) g[j] = a[j-1] - x + g[j-1]; double minn = 0; for(int i = m , j = 0; i <= n ; j++,i++ ) { minn = min(g[j],minn); if(g[i] - minn >= 0) return true; } return false; } int main() { cin >> n >> m; for(int i = 0 ; i< n ; i++) cin >> a[i]; double l , r; l = 0 , r = 2000; while( r - l > eps) { double mid = (l + r) /2; if(cheak(mid)) l = mid; else r = mid; } cout << (int)(r*1000) << endl; }
信息
- ID
- 358
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 9
- 标签
- 递交数
- 31
- 已通过
- 4
- 上传者