#include <bits/stdc++.h>
using namespace std;
const int nmax = 1e4;
const int qmax = 100;
int n, l, q;
int v[nmax + 5], k[qmax + 5];
int pd[nmax + 5], md[nmax + 5];
int rez[qmax + 5][nmax + 5];
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
#ifdef home
freopen("nr.in","r",stdin);
freopen("nr.out","w",stdout);
#endif // home
cin>>n>>l;
for(int i=1;i<=n;i++)
{
cin>>v[i];
}
cin>>q;
for(int i=1;i<=q;i++)
{
cin>>k[i];
}
for(int d=1;d<n;d++)
{
for(int i=1;i+d<=n;i++)
{
if(v[i] == v[i + d])
{
continue;
}
int sta = 0, dra = 0, stb = 0, drb = 0;
if(i >= l)
{
sta = i - l + 1;
dra = i;
stb = i + d - l + 1;
drb = i + d;
}
else
{
sta = 1;
dra = i;
stb = d + 1;
drb = i + d;
}
++pd[sta];
--pd[dra + 1];
++md[stb];
--md[drb + 1];
}
for(int i=1;i<=n;i++)
{
pd[i] += pd[i - 1];
md[i] += md[i - 1];
for(int j=1;j<=q;j++)
{
if(pd[i] <= k[j] && i + d + l - 1 <= n)
{
++rez[j][i];
}
if(md[i] <= k[j] && i - d >= 1)
{
++rez[j][i];
}
}
}
for(int i=1;i<=n;i++)
{
pd[i] = md[i] = 0;
}
}
for(int i=1;i<=q;i++)
{
for(int j=1;j<=n-l+1;j++)
{
cout<<rez[i][j]<<' ';
}
cout<<'\n';
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |