Submission #1282772

#TimeUsernameProblemLanguageResultExecution timeMemory
1282772julia_08Lottery (CEOI18_lot)C++20
45 / 100
21 ms16296 KiB
#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 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...