# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
522128 | LucaDantas | Lottery (CEOI18_lot) | C++17 | 3061 ms | 5272 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <cstdio>
#include <vector>
#include <algorithm>
constexpr int maxn = 1e4+10, maxq = 105;
int a[maxn], dist[maxn<<1], qtd[maxn], n;
void add(int x) {
for(int i = 0; i < n; i++)
if(a[i] != a[x]) ++dist[i - x + maxn]; // adiciono o maxn pra normalizar no meio
}
void rmv(int x) {
for(int i = 0; i < n; i++)
if(a[i] != a[x]) --dist[i - x + maxn]; // adiciono o maxn pra normalizar no meio
}
int prox[maxn], ans[maxn][maxq];
int main() {
int l; scanf("%d %d", &n, &l);
for(int i = 0; i < n; i++)
scanf("%d", a+i);
for(int i = 0; i < l; i++)
add(i);
int q; scanf("%d", &q);
std::vector<int> queries(q);
for(int i = 0; i < q; i++)
scanf("%d", &queries[i]);
for(int i = 0; i < n-l+1; i++) {
for(int j = maxn-i; j < maxn + n-l+1-i; j++)
for(int k = 0; k < q; k++)
ans[i][k] += (j != maxn ? dist[j] <= queries[k] : 0);
rmv(i);
add(i+l);
}
for(int j = 0; j < q; j++) {
for(int i = 0; i < n-l+1; i++)
printf("%d ", ans[i][j]);
puts("");
}
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |