Submission #128165

#TimeUsernameProblemLanguageResultExecution timeMemory
128165TadijaSebezLottery (CEOI18_lot)C++11
100 / 100
777 ms8492 KiB
#include <bits/stdc++.h> using namespace std; const int N=10050; const int K=105; int dp[2][N],a[N],k[K],ans[K][N],cnt[N],n,l,q,m; void Solve(int x, int t) { for(int i=0;i<=l;i++) cnt[i]=0; for(int i=1;i<=m;i++) if(i!=x) cnt[dp[t][i]]++; for(int i=1;i<=l;i++) cnt[i]+=cnt[i-1]; for(int i=1;i<=q;i++) ans[i][x]=cnt[k[i]]; } int main() { scanf("%i %i",&n,&l); for(int i=1;i<=n;i++) scanf("%i",&a[i]); scanf("%i",&q); for(int i=1;i<=q;i++) scanf("%i",&k[i]); m=n-l+1; for(int i=1;i<=m;i++) for(int j=0;j<l;j++) dp[0][i]+=a[1+j]!=a[i+j]; Solve(1,0); int t=1; for(int i=2;i<=m;i++) { for(int j=1;j<=m;j++) dp[t][j]=0; for(int j=0;j<l;j++) dp[t][1]+=a[1+j]!=a[i+j]; for(int j=2;j<=m;j++) { dp[t][j]=dp[t^1][j-1]; dp[t][j]-=a[i-1]!=a[j-1]; dp[t][j]+=a[i+l-1]!=a[j+l-1]; } Solve(i,t); t^=1; } for(int i=1;i<=q;i++) for(int j=1;j<=m;j++) printf("%i%c",ans[i][j],j==m?'\n':' '); return 0; }

Compilation message (stderr)

lot.cpp: In function 'int main()':
lot.cpp:15:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%i %i",&n,&l);
  ~~~~~^~~~~~~~~~~~~~~
lot.cpp:16:29: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  for(int i=1;i<=n;i++) scanf("%i",&a[i]);
                        ~~~~~^~~~~~~~~~~~
lot.cpp:17:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%i",&q);
  ~~~~~^~~~~~~~~
lot.cpp:18:29: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  for(int i=1;i<=q;i++) scanf("%i",&k[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...