33,007
社区成员
发帖
与我相关
我的任务
分享
#include <vector>
#include <utility>
#include <cstdio>
int area_len;
int N;
using namespace std;
vector<int> a;
pair<int, int> solve() {
int fst, snd;
fst = 0;
for (int k = 0; k <= area_len - 1; ++k) fst += a[k];
snd = 0;
for (int k = area_len; k <= 2 * area_len - 1; ++k) snd += a[k];
int curMin = 999999;
int j = 2 * area_len;
int i = area_len;
while(1) {
fst = fst + a[i] - a[i - area_len];
snd = snd + a[j] - a[j - area_len];
curMin = min(curMin, fst);
if (snd + curMin <= 11) return make_pair(i, j);
j += 1;
i += 1;
if (j > N) return make_pair(-1, -1);
}
}
int main() {
printf("LEN=? area_len=?\n");
scanf("%d %d", &N, &area_len);
a.resize(N + 3);
int i;
for (i = 1; i <= N; ++i) scanf("%d", &(a[i]));
a[0] = 0;
pair<int, int> r = solve();
printf("[%d,%d] [%d,%d]\n", r.first - area_len + 1, r.first, r.second - area_len + 1, r.second);
return 0;
}