比赛 期末考试1 评测结果 AAEEEEEEEE
题目名称 Interactive 最终得分 20
用户昵称 dbk 运行时间 1.224 s
代码语言 C++ 内存使用 3.43 MiB
提交时间 2026-02-08 12:29:28
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
const int N = 1e3 + 10;
long long a[N], mr[N], cnt[N];
int n, k;
int main() {
    freopen("tioj_interactive.in", "r", stdin);
    freopen("tioj_interactive.out", "w", stdout);
    cin >> n >> k;
    for (int i = 0; i < n; i++) cin >> a[i];
    for (int i = 0; i < n; i++) {
        long long sum = 0;
        mr[i] = n + 1;
        for (int j = i; j < n; j++) {
            sum += a[j];
            if (sum >= k) {
                mr[i] = j + 1;
                break;
            }
        }
    }
    for (int l = 0; l < n; l++) {
        int mi = n + 1;
        for (int r = l; r < n; r++) {
            if (mr[r] < mi) mi = mr[r];
            if (mi <= r + 1) {
                cnt[r - l + 1]++;
            }
        }
    }
    for (int i = 1; i <= n; i++) cnt[i] += cnt[i - 1];
    int Q;
    cin >> Q;
    while (Q--) {
        int x;
        cin >> x;
        if (x > N) x = N;
        cout << cnt[x] << "\n";
    }
    
    return 0;
}