Submission #307475

#TimeUsernameProblemLanguageResultExecution timeMemory
307475keta_tsimakuridzeLottery (CEOI18_lot)C++14
100 / 100
887 ms8440 KiB
#include<bits/stdc++.h> #define f first #define s second using namespace std; const int N = 1e4+5; int n , l , q , a[N] , b[N] , cur , ans[N][105] , aft[N],ind[105]; pair< int , int > p[105]; int main() { cin>>n>>l; for(int k=1; k<=n; k++) cin>>a[k]; cin>>q; for(int k=1; k<=q; k++) { cin>>p[k].f; p[k].s=k; } //k___l // k-ze meti an toli sort(p+1,p+q+1); cur=1; for(int k=0; k<=n; k++){ while(p[cur].f<k && cur<=q) { cur++; } aft[k]=cur; } for(int d=1; d<=n; d++) { for(int k=1; k<=n-d; k++) { b[k]=0; if(a[k]!=a[k+d]){ b[k]=1; } } for(int k=1; k<=n-d; k++){ // cout<<b[k]<<" "; b[k]+=b[k-1]; if( k>=l ){ int K=b[k]-b[k-l]; ans[k-l+1][aft[K]]++; ans[k+d-l+1][aft[K]]++; } } } for(int k=1; k<=q; k++){ ind[p[k].s]=k; for(int i=1; i<=n-l+1; i++){ ans[i][k]=ans[i][k]+ans[i][k-1]; } } for(int k=1; k<=q; k++){ for(int i=1; i<=n-l+1; i++){ cout<<ans[i][ind[k]]<<" "; } 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...