Submission #1222863

#TimeUsernameProblemLanguageResultExecution timeMemory
1222863Tenis0206Lottery (CEOI18_lot)C++20
80 / 100
3095 ms2092 KiB
#include <bits/stdc++.h> using namespace std; const int nmax = 1e4; const int qmax = 100; int n, l, q; int v[nmax + 5], k[qmax + 5]; int pd[nmax + 5], md[nmax + 5]; int rez[qmax + 5][nmax + 5]; int main() { ios::sync_with_stdio(false); cin.tie(0); #ifdef home freopen("nr.in","r",stdin); freopen("nr.out","w",stdout); #endif // home cin>>n>>l; for(int i=1;i<=n;i++) { cin>>v[i]; } cin>>q; for(int i=1;i<=q;i++) { cin>>k[i]; } for(int d=1;d<n;d++) { for(int i=1;i+d<=n;i++) { if(v[i] == v[i + d]) { continue; } int sta = 0, dra = 0, stb = 0, drb = 0; if(i >= l) { sta = i - l + 1; dra = i; stb = i + d - l + 1; drb = i + d; } else { sta = 1; dra = i; stb = d + 1; drb = i + d; } ++pd[sta]; --pd[dra + 1]; ++md[stb]; --md[drb + 1]; } for(int i=1;i<=n;i++) { pd[i] += pd[i - 1]; md[i] += md[i - 1]; for(int j=1;j<=q;j++) { if(pd[i] <= k[j] && i + d + l - 1 <= n) { ++rez[j][i]; } if(md[i] <= k[j] && i - d >= 1) { ++rez[j][i]; } } } for(int i=1;i<=n;i++) { pd[i] = md[i] = 0; } } for(int i=1;i<=q;i++) { for(int j=1;j<=n-l+1;j++) { cout<<rez[i][j]<<' '; } 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...