Submission #503895

#TimeUsernameProblemLanguageResultExecution timeMemory
503895krit3379Lottery (CEOI18_lot)C++17
45 / 100
624 ms1100 KiB
#include<bits/stdc++.h> using namespace std; #define N 10005 long long h,hx[N],p=1e5+7,pp=1; int a[N],b[N],ans[105][N],que[105],sz; map<long long,int> mp,in; 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]),b[i]=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){ sort(b+1,b+n+1); for(i=1;i<=n;i++)if(!in.count(b[i]))in[b[i]]=++sz; for(i=1;i<=l;i++)h=(h*p)+in[a[i]],pp*=p; hx[1]=h; mp[h]++; for(i=2;i<=m;i++)h*=p,h-=pp*in[a[i-1]]+in[a[l+i-1]],hx[i]=h,mp[h]++; for(i=1;i<=m;i++)printf("%d ",mp[hx[i]]-1); 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)

lot.cpp: In function 'int main()':
lot.cpp:10:27: warning: unused variable 'x' [-Wunused-variable]
   10 |     int n,m,l,q,i,j,k,cnt,x;
      |                           ^
lot.cpp:11:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   11 |     scanf("%d %d",&n,&l);
      |     ~~~~~^~~~~~~~~~~~~~~
lot.cpp:12:27: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   12 |     for(i=1;i<=n;i++)scanf("%d",&a[i]),b[i]=a[i];
      |                      ~~~~~^~~~~~~~~~~~
lot.cpp:14:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   14 |     scanf("%d",&q);
      |     ~~~~~^~~~~~~~~
lot.cpp:16:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   16 |         scanf("%d",&que[i]);
      |         ~~~~~^~~~~~~~~~~~~~
#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...