Submission #1214455

#TimeUsernameProblemLanguageResultExecution timeMemory
1214455goduadzesabaLottery (CEOI18_lot)C++20
0 / 100
259 ms8896 KiB
#include <bits/stdc++.h> using namespace std; #define int long long const int N=1e4+5,M=1e2+5,mod=1e9+7,inf=2e18; int n,l,qq,a[N],q[N][M],dp[N],nx[N],ans[M][N]; pair<int,int> p[N]; signed main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n>>l; for (int i=1; i<=n; i++) cin>>a[i]; cin>>qq; for (int i=1; i<=qq; i++){ cin>>p[i].first; p[i].second=i; } sort(p+1,p+qq+1); int x=qq; for (int i=N; i>0; i--){ while (p[x].first>i) x--; nx[i]=x; //cout<<i<<" "<<nx[i]<<"\n"; } for (int k=1; k<=n-l; k++){ for (int i=1; i<=n; i++) dp[i]=0; for (int i=1; i<=l; i++) dp[1]+=(a[i]!=a[i+k]); q[1][nx[dp[1]]]++; q[k+1][nx[dp[1]]]++; //cout<<"1 "<<dp[1]<<"\n"; for (int i=2; i+k<=n-l+1; i++){ dp[i]=dp[i-1]; dp[i]-=(a[i-1]!=a[i+k-1]); dp[i]+=(a[i+l-1]!=a[i+l-1+k]); q[i][nx[dp[i]]]++; q[i+k][nx[dp[i]]]++; //cout<<i<<" "<<dp[i]<<"\n"; } } for (int j=1; j<=qq; j++){ for (int i=1; i<=n-l+1; i++){ q[i][j]+=q[i][j-1]; //cout<<i<<" "<<j<<" "<<q[i][j]<<" "<<p[j].second<<"\n"; ans[p[j].second][i]=q[i][j]; } } for (int i=1; i<=qq; i++){ for (int j=1; j<=n-l+1; j++) cout<<ans[i][j]<<" "; cout<<"\n"; } }
#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...