#include <bits/stdc++.h>
using namespace std;
const int MAXN = 2e3 + 10;
const int MAXQ = 110;
int a[MAXN];
int ans[MAXN][MAXN];
int main(){
cin.tie(0)->sync_with_stdio(0);
int n, l; cin >> n >> l;
for(int i=1; i<=n; i++) cin >> a[i];
for(int d=1; d<n; d++){
int p = 0, sum = 0;
for(int i=1; i<=(n - l + 1 - d); i++){
while(p < i + l - 1){
p ++;
if(p + d <= n) sum += (a[p] == a[p + d]);
}
ans[i][sum] ++;
ans[i + d][sum] ++;
if(i + d <= n) sum -= (a[i] == a[i + d]);
}
}
for(int i=1; i<=n; i++){
for(int j=(n - 1); j>=0; j--){
ans[i][j] += ans[i][j + 1];
}
}
int q; cin >> q;
while(q--){
int k; cin >> k;
for(int i=1; i<=(n - l + 1); i++) cout << ans[i][l - k] << " ";
cout << "\n";
}
return 0;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |