Submission #870828

#TimeUsernameProblemLanguageResultExecution timeMemory
870828Darren0724Lottery (CEOI18_lot)C++17
45 / 100
42 ms65536 KiB
#include <bits/stdc++.h>
using namespace std;
#define LCBorz                        \
    ios_base::sync_with_stdio(false); \
    cin.tie(0);
#define int long long
#define all(x) x.begin(), x.end()
#define x first
#define y second
#define endl '\n'
const int N=100005;
const int INF=1e18;

int32_t main() {
    LCBorz;
    int n,k;cin>>n>>k;
    vector<int> v(n);
    for(int i=0;i<n;i++){
        cin>>v[i];
    }
    int ans[n+1][n+1]{};
    for(int i=1;i<n;i++){
        vector<int> a;
        //a.push_back(0);
        for(int j=0;j+i<n;j++){
            a.push_back(v[j]!=v[i+j]);
        }
        int sz=a.size();
        if(sz<k){
            continue;
        }
        int cnt=0;
        for(int j=0;j<k;j++){
            cnt+=a[j];
        }
        //cout<<0<<' '<<i<<' '<<cnt<<endl;
        ans[0][cnt]++;
        ans[i][cnt]++;
        for(int j=k;j<sz;j++){
            cnt-=a[j-k];
            cnt+=a[j];
            ans[j+1-k][cnt]++;
            ans[i+j+1-k][cnt]++;
            //cout<<j+1-k<<' '<<i+j+1-k<<' '<<cnt<<endl;
        }
    }
    for(int i=0;i<n;i++){
        for(int j=1;j<=n;j++){
            ans[i][j]+=ans[i][j-1];
            //cout<<
        }
    }
    int q;cin>>q;
    for(int i=0;i<q;i++){
        int p;cin>>p;
        for(int j=0;j<n-k+1;j++){
            cout<<ans[j][p]<<' ';
        }
        cout<<endl;
    }
    

    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...