Submission #1180209

#TimeUsernameProblemLanguageResultExecution timeMemory
1180209PieArmyLottery (CEOI18_lot)C++20
100 / 100
345 ms9172 KiB
#include<bits/stdc++.h> typedef long long ll; #define pb push_back #define fr first #define sc second using namespace std; int n,l,q; int arr[10023]; int Q[123],per[123]; int ans[10023][123]; int go[10023]; int dif[10023]; int main(){ ios_base::sync_with_stdio(false);cin.tie(NULL); cin>>n>>l; for(int i=1;i<=n;i++){ cin>>arr[i]; } cin>>q; for(int i=1;i<=q;i++){ cin>>Q[i]; } Q[q+1]=l+1; iota(per,per+q+1,1); sort(per,per+q+1,[&](const int &x,const int &y){ return Q[x]<Q[y]; }); int loc=0; for(int i=0;i<=q;i++){ while(loc<=Q[per[i]]){ go[loc]=i; loc++; } } for(int i=1;i<=n-l;i++){ for(int j=1;j+i<=n;j++){ dif[j]=dif[j-1]+(arr[j]!=arr[j+i]); } for(int j=l;j<=n;j++){ if(j+i<=n)ans[j][go[dif[j]-dif[j-l]]]++; if(j-l-i>=0)ans[j][go[dif[j-i]-dif[j-i-l]]]++; } } for(int i=1;i<q;i++){ for(int j=l;j<=n;j++){ ans[j][i]+=ans[j][i-1]; } } for(int i=1;i<=q;i++){ int pos=0; while(per[pos]!=i)pos++; for(int j=l;j<=n;j++) cout<<ans[j][pos]<<" "; cout<<endl; } }
#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...