Submission #1142293

#TimeUsernameProblemLanguageResultExecution timeMemory
114229312345678Lottery (CEOI18_lot)C++17
0 / 100
150 ms4604 KiB
#include <bits/stdc++.h>

using namespace std;

const int nx=1e4+5, kx=105;

int n, l, a[nx], qs[nx][kx], res[nx], q, t[nx], cmp[nx];

int main()
{
    cin.tie(NULL)->sync_with_stdio(false);
    cin>>n>>l;
    for (int i=1; i<=n; i++) cin>>a[i];
    cin>>q;
    for (int i=1; i<=q; i++) cin>>t[i], cmp[t[i]]++;
    for (int i=1; i<=l; i++) cmp[i]+=cmp[i-1];
    for (int j=2; j+l-1<=n; j++)
    {
        int cur=0, sti=2, stj=j+1;
        for (int i=0; i<l; i++) cur+=(a[i+1]!=a[j+i]);
        qs[1][cmp[cur]]++, qs[j][cmp[cur]]++;
        while (stj+l-1<=n)
        {
            cur-=(a[sti-1]!=a[stj-1]);
            cur+=(a[sti+l-1]!=a[stj+l-1]);
            qs[sti][cmp[cur]]++, qs[stj][cmp[cur]]++;
            sti++, stj++;
        }
    }
    for (int i=1; i<=n; i++) for (int j=1; j<=q; j++) qs[i][j]+=qs[i][j-1];
    for (int i=1; i<=q; i++) 
    {
        for (int j=1; j+l-1<=n; j++) cout<<qs[j][cmp[t[i]]]<<' ';
        cout<<'\n';
    }
}
#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...