제출 #1213930

#제출 시각아이디문제언어결과실행 시간메모리
1213930semiautoLottery (CEOI18_lot)C++20
45 / 100
116 ms131072 KiB
#include <bits/stdc++.h>
using namespace std;
int go[10005][10005];
int main() {
    int n, l;
    cin >> n >> l;
    int a[n];
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
    for (int i = n - 1; i >= 0; i--) {
        for (int j = n - 1; j >= i; j--) {
            go[i][j] = go[i + 1][j + 1];
            if (a[i] != a[j]) {
                go[i][j]++;
            }
        }
    }
    vector <int> v[n - l + 1];
    for (int i = 0; i <= n - l; i++) {
        for (int j = 0; j <= n - l; j++) {
            if (i == j) {
                continue;
            }
            v[i].push_back(go[min(i, j)][max(i, j)] - go[min(i, j) + l][max(i, j) + l]);
        }
        sort(v[i].begin(), v[i].end());
    }
    int q;
    cin >> q;
    while (q--) {
        int k;
        cin >> k;
        for (int i = 0; i <= n - l; i++) {
            int ind = upper_bound(v[i].begin(), v[i].end(), k) - v[i].begin();
            cout << ind << " ";
        }
        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...