제출 #1254571

#제출 시각아이디문제언어결과실행 시간메모리
1254571chikien2009Lottery (CEOI18_lot)C++20
0 / 100
179 ms568 KiB
#include <bits/stdc++.h>

using namespace std;

void setup()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
}

int n, m, q, l, a[10000], num[100][10000], pre[10000], b[100], c[100], d;

int main()
{
    setup();

    cin >> n >> l;
    for (int i = 0; i < n; ++i)
    {
        cin >> a[i];
    }
    cin >> q;
    for (int i = 0; i < q; ++i)
    {
        cin >> b[i];
        c[i] = b[i];
    }
    sort(c, c + q);
    m = unique(c, c + q) - c;
    for (int i = 1; i < n; ++i)
    {
        fill_n(pre, n, 0);
        for (int j = 0, k = i; k < n; ++k, ++j)
        {
            pre[k] = pre[k - 1] + (a[j] != a[k]);
            if (l - 1 <= j)
            {
                d = lower_bound(c, c + m, pre[k] - pre[k - l]) - c;
                if (d < m)
                {
                    num[d][k - l + 1]++;
                    num[d][j - l + 1]++;
                }
            }
        }
    }
    for (int i = 1; i < m; ++i)
    {
        for (int j = 0; j < n; ++j)
        {
            num[i][j] += num[i - 1][j];
        }
    }
    for (int i = 0; i < q; ++i)
    {
        b[i] = lower_bound(c, c + m, b[i]) - c;
        for (int j = 0; j < n - 1; ++j)
        {
            cout << num[i][j] << " ";
        }
        cout << "\n";
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...