Submission #1026363

#TimeUsernameProblemLanguageResultExecution timeMemory
1026363vjudge1Lottery (CEOI18_lot)C++17
65 / 100
225 ms31324 KiB
#include<bits/stdc++.h>
using namespace std;
#define int long long 
int ans[2005][2005];
int a[2000+5];
int n,l;
string s;
map<string,int>brp;

void solve(){
    for(int q=1;q<=n-l+1;q++){
        for(int w=q+1;w<=n-l+1;w++){
            int bny=0;
            for(int u=1;u<=l;u++){
                if(a[q+u-1]!=a[w+u-1]){
                    bny++;
                }
            }
            for(int r=bny;r<=l;r++){
                ans[q][r]++;
                ans[w][r]++;
            }
        }
    }
}

void solve2(){
    for(int q=1;q<=n-l+1;q++){
        string tmp=s.substr(q-1,l);
        brp[tmp]++;
    }
}

signed main(){
    cin>>n>>l;
    for(int t=1;t<=n;t++){
        cin>>a[t];
        s+=char(a[t]+48);
    }
     int q;
    cin>>q;
    if(q==1){
        int b;
        cin>>b;
        solve2();

        for(int p=1;p<=n-l+1;p++){
            string tmp=s.substr(p-1,l);
          //   cout<<tmp<<endl;
             cout<<brp[tmp]-1<<" ";
        }

        return 0;
    }
    solve();
    for(int t=1;t<=q;t++){
        int b;
        cin>>b;
        for(int r=1;r<=n-l+1;r++){
            cout<<ans[r][b]<<" ";
        }
        cout<<endl;
    }
}
#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...