# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
503887 | krit3379 | Lottery (CEOI18_lot) | C++17 | 621 ms | 844 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
#define N 10005
long long h,hx[N],p=1e15+7,pp=1;
int a[N],ans[105][N],que[105];
map<long long,int> mp;
int main(){
int n,m,l,q,i,j,k,cnt,x;
scanf("%d %d",&n,&l);
for(i=1;i<=n;i++)scanf("%d",&a[i]);
m=n-l+1;
scanf("%d",&q);
for(i=1;i<=q;i++){
scanf("%d",&que[i]);
}
if(q==1&&que[1]==0){
for(i=1;i<=l;i++)h=(h*p)+a[i],pp*=p;
hx[1]=h;
mp[h]++;
for(i=2;i<=m;i++)h=(h*p)-pp*a[i-1]+a[l+i-1],hx[i]=h,mp[h]++;
for(i=1;i<=m;i++)printf("%d ",mp[hx[i]]-1);
printf("\n");
return 0;
}
for(i=1;i<=m;i++){
vector<short> v;
for(j=1;j<=m;j++){
if(i==j)continue;
cnt=0;
for(k=0;k<l;k++)if(a[i+k]!=a[j+k])cnt++;
v.push_back(cnt);
}
sort(v.begin(),v.end());
for(j=1;j<=q;j++){
int x=upper_bound(v.begin(),v.end(),que[j])-(v.begin());
ans[j][i]=x;
}
}
for(i=1;i<=q;i++){
for(j=1;j<=m;j++)printf("%d ",ans[i][j]);
printf("\n");
}
return 0;
}
Compilation message (stderr)
# | 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... |