Submission #1251345

#TimeUsernameProblemLanguageResultExecution timeMemory
1251345minhpkLottery (CEOI18_lot)C++20
45 / 100
436 ms98588 KiB
#include <bits/stdc++.h>
using namespace std;
int a,b;
int z[1000005];
vector<vector<int>> f;

signed main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cin >> a >> b;
    for (int i=1;i<=a;i++){
         cin >> z[i];
    }
    f.resize(a-b+2,vector<int>(b+1));
    for (int i=2;i+b-1<=a;i++){
         int sta=1;
         int sta1=i;
         int cur=0;
         for (int j=0;j<b;j++){
              if (z[j+sta]!=z[j+sta1]){
                  cur++;
              }
         }
         f[sta][cur]++;
         f[sta1][cur]++;
         for (int j=i+b;j<=a;j++){
              if (z[sta]!=z[sta1]){
                  cur--;
              }
              sta++;
              sta1++;
              if (z[sta+b-1]!=z[sta1+b-1]){
                  cur++;
              }
              f[sta][cur]++;
              f[sta1][cur]++;
         }
    }
    for (int i=1;i<=a-b+1;i++){
         for (int j=1;j<=b;j++){
              f[i][j]+=f[i][j-1];
         }
    }
    int q;
    cin >> q;
    while (q--){
         int x;
         cin >> x;
         for (int i=1;i<=a-b+1;i++){
             cout << f[i][x] << " ";
         }
         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...