Submission #575669

#TimeUsernameProblemLanguageResultExecution timeMemory
575669andrei_boacaLottery (CEOI18_lot)C++14
45 / 100
38 ms24948 KiB
#include <bits/stdc++.h> using namespace std; int cnt[2005][2005],nr[2005][2005]; int n,v[10005],l,q; int main() { ios_base::sync_with_stdio(false); cin.tie(0); cin>>n>>l; for(int i=1;i<=n;i++) cin>>v[i]; for(int i=1;i<=n;i++) for(int j=i+1;j<=n;j++) if(v[i]==v[j]) { int dist=j-i; int lft=max(1,i-l+1); int rgt=j; if(j+l-1>n) rgt=n-l+1; rgt-=dist; if(lft<=rgt) { cnt[dist][lft]++; cnt[dist][rgt+1]--; } } for(int dist=1;dist<=n;dist++) for(int i=1;i+l-1<=n;i++) { cnt[dist][i]=cnt[dist][i]+cnt[dist][i-1]; int j=i+dist; if(j+l-1>n) continue; int val=cnt[dist][i]; nr[i][val]++; nr[j][val]++; } for(int i=1;i+l-1<=n;i++) for(int val=1;val<=l;val++) nr[i][val]+=nr[i][val-1]; cin>>q; while(q--) { int need=0; cin>>need; need=l-need; for(int i=1;i+l-1<=n;i++) { int val=nr[i][l]; if(need>0) val-=nr[i][need-1]; cout<<val<<' '; } cout<<'\n'; } return 0; }
#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...