QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#710364 | #4780. 完美的队列 | NineSuns | 55 | 1598ms | 139972kb | C++14 | 3.3kb | 2024-11-04 19:34:24 | 2024-11-04 19:34:24 |
Judging History
answer
#include <bits/stdc++.h>
#define ll long long
#define pii pair <int, int>
#define fi first
#define se second
#define pb push_back
using namespace std;
mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count());
const int N = 1e5+5, B = 355, b = 255, inf = 0x3f3f3f3f;
int n, m, a[N], l[N], r[N], x[N], rk[N], lb[B], rb[B], sr[N], sa[N], bv[N], ans[N], ed;
bool vis[N][B];
pii stk[N];
vector <int> dx, col[N];
vector <pii> ds[N];
deque <pii> qs[N];
int mx, ad;
void chk (int id, int x, int k) {
if (l[id] <= lb[x] && rb[x] <= r[id]) {
mx += k; ad += k;
return;
}
if (l[id] > rb[x] || r[id] < lb[x]) return;
mx = -inf;
for (int j = max(l[id], lb[x]);j <= min(r[id], rb[x]);j++) bv[j] += k;
for (int j = lb[x];j <= rb[x];j++) mx = max(mx, ad+bv[j]);
}
void solve () {
cin >> n >> m;
for (int i = 1;i <= n;i++) cin >> a[i];
for (int i = 1;i <= m;i++) cin >> l[i] >> r[i] >> x[i], col[x[i]].pb(i);
for (int i = 1; ;i++) {
lb[i] = rb[i-1]+1; rb[i] = min(n, rb[i-1]+b);
for (int j = lb[i];j <= rb[i];j++) rk[j] = i;
if (rb[i] == n) break;
}
for (int i = 1;i <= rk[n];i++) {
int cb = 0, s = 0;
for (int j = 0;j <= m;j++) ds[j].clear();
for (int j = 1;j <= m;j++) {
if (rb[i] < l[j] || lb[i] > r[j]) continue;
if (l[j] < lb[i] && rb[i] < r[j]) {
++cb;
while (s < cb) {
++s;
while (ds[s].size()) {
auto id = ds[s].back(); ds[s].pop_back();
if (vis[id.se][id.fi-lb[i]]) continue;
vis[id.se][id.fi-lb[i]] = 1;
sr[id.se] = max(sr[id.se], j-1), qs[id.fi].pop_front();
if (qs[id.fi].size()) {
ds[qs[id.fi].front().fi-sa[id.fi]].pb({id.fi, qs[id.fi].front().se});
}
}
}
continue;
}
for (int z = max(lb[i], l[j]);z <= min(rb[i], r[j]);z++) {
vis[j][z-lb[i]] = 0;
sa[z]++;
if (qs[z].size()) {
if (sa[z]+cb >= qs[z].front().fi) {
vis[qs[z].front().se][z-lb[i]] = 1;
sr[qs[z].front().se] = max(sr[qs[z].front().se], j-1), qs[z].pop_front();
}
}
qs[z].pb({cb+sa[z]+a[z], j});
s = min(s, qs[z].front().fi-sa[z]-1);
ds[qs[z].front().fi-sa[z]].pb({z, qs[z].front().se});
}
}
for (int j = lb[i];j <= rb[i];j++) while (qs[j].size()) sr[qs[j].front().se] = m, qs[j].pop_front();
}
for (int i = 1;i <= rk[n];i++) {
dx.clear();
for (int j = 1;j <= m;j++) if (rk[l[j]] < i && i < rk[r[j]]) dx.pb(j);
int l = 1, r = 0; mx = -inf; ad = 0;
for (int z = lb[i];z <= rb[i];z++) mx = max(mx, a[z]), bv[z] = a[z];
for (int j : dx) {
while (r < j) ++r, chk(r, i, -1);
while (l <= j) chk(l, i, 1), l++;
while (r < m && mx > 0) ++r, chk(r, i, -1);
if (mx > 0) sr[j] = max(sr[j], m);
else sr[j] = max(sr[j], r-1);
}
}
for (int i = 1;i <= m;i++) {
reverse(col[i].begin(), col[i].end());
for (int j : col[i]) {
int r = sr[j];
while (ed && stk[ed].fi <= r) {
r = max(r, stk[ed].se); ed--;
}
stk[++ed] = {j, r};
}
while (ed) {
// cout << stk[ed].fi << " " << stk[ed].se << "\n";
ans[stk[ed].fi]++; ans[stk[ed].se+1]--;
ed--;
}
}
for (int i = 1;i <= m;i++) ans[i] += ans[i-1];
for (int i = 1;i <= m;i++) cout << ans[i] << '\n';
}
signed main () {
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int T = 1;
while (T--) solve();
return 0;
}
詳細信息
Subtask #1:
score: 0
Wrong Answer
Test #1:
score: 0
Wrong Answer
time: 48ms
memory: 87516kb
input:
5000 4999 99 36 47 78 58 58 64 12 42 54 29 56 57 32 99 21 1 6 42 97 82 8 79 92 3 56 19 41 29 59 23 34 76 34 82 20 44 51 60 73 89 65 51 65 15 87 65 70 51 26 40 95 44 62 97 81 43 13 20 81 76 64 47 95 54 56 99 62 91 63 98 58 70 60 47 97 31 74 76 70 10 30 99 33 52 100 14 65 4 6 87 4 8 1 8 87 18 70 76 43...
output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 10...
result:
wrong answer 2797th numbers differ - expected: '2110', found: '2109'
Subtask #2:
score: 0
Skipped
Dependency #1:
0%
Subtask #3:
score: 0
Skipped
Dependency #2:
0%
Subtask #4:
score: 0
Skipped
Dependency #3:
0%
Subtask #5:
score: 5
Accepted
Test #5:
score: 5
Accepted
time: 151ms
memory: 115308kb
input:
25000 25000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...
output:
1 2 3 4 5 5 5 3 3 4 4 4 5 4 4 5 6 7 6 6 7 8 9 6 7 8 8 7 8 9 7 8 9 10 8 8 9 10 10 11 12 12 5 6 7 8 9 4 5 6 7 5 6 7 8 6 7 8 7 8 9 10 11 10 11 12 13 13 12 12 9 10 7 8 7 8 8 6 7 8 8 9 9 10 7 8 9 9 9 10 11 10 11 12 12 13 13 14 15 16 15 15 11 4 5 6 7 8 8 9 9 8 9 9 10 11 10 8 8 8 9 9 10 10 10 6 6 7 8 9 4 5...
result:
ok 25000 numbers
Subtask #6:
score: 0
Skipped
Dependency #4:
0%
Subtask #7:
score: 5
Accepted
Test #7:
score: 5
Accepted
time: 233ms
memory: 128036kb
input:
34999 35000 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 ...
output:
1 2 3 4 5 6 7 8 9 10 11 12 13 11 7 7 8 9 10 10 11 12 11 12 12 11 9 8 9 4 5 6 7 8 9 10 10 11 12 13 13 14 15 16 17 17 17 16 14 11 11 12 13 14 15 14 14 13 14 14 15 14 15 16 17 18 19 19 19 20 19 16 16 15 15 15 12 13 14 15 16 17 18 19 18 19 19 19 19 17 18 18 19 20 21 21 21 22 18 19 20 21 20 20 19 20 21 2...
result:
ok 35000 numbers
Subtask #8:
score: 0
Skipped
Dependency #6:
0%
Subtask #9:
score: 5
Accepted
Test #9:
score: 5
Accepted
time: 389ms
memory: 139972kb
input:
45000 45000 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 ...
output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 17 18 19 20 21 22 23 24 24 25 26 27 28 29 29 30 31 30 31 32 31 31 32 32 33 34 34 35 36 37 38 38 39 39 39 38 38 39 40 41 40 41 42 40 40 41 42 43 43 44 45 46 47 48 44 45 44 45 46 45 44 44 45 45 46 47 48 47 48 49 50 51 52 51 52 51 51 50 50 51 52 52 52 52 52 53 ...
result:
ok 45000 numbers
Subtask #10:
score: 0
Skipped
Dependency #8:
0%
Subtask #11:
score: 5
Accepted
Dependency #5:
100%
Accepted
Dependency #7:
100%
Accepted
Dependency #9:
100%
Accepted
Test #11:
score: 5
Accepted
time: 564ms
memory: 121016kb
input:
54444 55000 3 5 10 6 4 10 10 6 2 10 5 2 6 9 10 6 5 9 3 4 7 6 9 1 1 2 6 10 5 2 6 3 10 3 4 7 3 3 3 5 9 2 2 8 6 10 6 9 1 1 3 2 6 8 9 3 10 4 10 5 6 5 7 6 9 4 7 4 10 8 5 10 1 5 8 4 4 5 9 3 9 3 2 1 2 7 5 10 3 4 6 10 4 8 6 9 6 6 6 8 8 3 3 2 9 9 7 3 8 9 4 4 3 5 10 5 10 6 7 2 10 1 1 10 6 1 6 3 7 1 8 7 9 4 5 ...
output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 32 33 33 33 32 33 34 35 36 37 38 38 39 38 37 38 39 40 40 40 41 42 43 44 45 46 46 47 48 48 49 50 51 50 51 51 52 53 54 55 54 53 53 52 53 54 52 53 52 51 52 52 53 54 55 52 53 54 53 54 54 54 55 56 56 56 55 55 56 55 54 ...
result:
ok 55000 numbers
Subtask #12:
score: 5
Accepted
Dependency #11:
100%
Accepted
Test #12:
score: 5
Accepted
time: 826ms
memory: 116264kb
input:
60000 60000 55 3 74 22 46 71 40 1 41 52 27 48 31 19 84 36 89 45 7 36 91 41 79 43 43 64 58 6 80 80 66 52 60 58 47 84 31 11 74 43 74 23 79 31 45 17 85 49 53 96 45 92 59 30 30 15 59 63 52 47 17 10 72 91 8 29 1 74 86 100 91 13 85 77 79 34 10 83 76 54 52 63 5 76 45 62 80 47 21 46 36 12 9 93 28 50 86 43 9...
output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 ...
result:
ok 60000 numbers
Subtask #13:
score: 5
Accepted
Test #13:
score: 5
Accepted
time: 709ms
memory: 126364kb
input:
65000 65000 5 7 8 6 3 6 8 7 2 3 5 10 9 9 4 3 9 1 2 9 1 1 6 10 1 10 5 4 7 1 9 6 6 8 10 5 8 3 2 5 2 3 6 8 7 3 2 3 6 5 1 10 6 2 4 7 8 1 3 3 5 4 2 5 2 5 3 3 6 7 6 9 5 3 10 3 6 2 8 10 9 10 2 5 4 10 3 3 6 3 5 7 141 3 6 3 10 2 7 6 3 5 9 4 10 1 3 9 9 8 2 5 10 1 7 1 8 5 3 3 7 7 9 7 4 1 9 2 2 4 8 6 10 5 7 3 3...
output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 ...
result:
ok 65000 numbers
Subtask #14:
score: 5
Accepted
Dependency #12:
100%
Accepted
Dependency #13:
100%
Accepted
Test #14:
score: 5
Accepted
time: 1026ms
memory: 122936kb
input:
70000 70000 54 42 81 48 90 100 68 36 70 5 93 14 38 37 27 29 66 51 92 69 40 74 70 59 69 85 38 24 24 83 53 66 58 69 26 5 31 19 34 19 92 31 80 65 39 22 61 44 18 84 69 4 28 81 60 16 54 90 10 44 63 100 52 10 65 14 28 42 25 46 89 82 67 92 61 15 40 87 72 49 31 57 52 71 16 27 28 33 96 11 75 12 35 1 23 93 80...
output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 ...
result:
ok 70000 numbers
Subtask #15:
score: 5
Accepted
Dependency #13:
100%
Accepted
Test #15:
score: 5
Accepted
time: 880ms
memory: 136128kb
input:
75000 75000 1 8 2 4 4 7 1 2 5 4 1 3 2 4 2 2 3 3 3 6 1 4 8 5 3 6 8 3 9 4 5 5 3 6 9 2 9 6 1 4 2 8 5 8 2 7 4 3 4 4 1 9 4 5 8 1 4 8 6 5 8 6 6 5 4 7 6 3 3 6 6 4 7 4 4 1 9 6 6 4 6 4 1 9 7 3 4 7 7 5 9 9 7 3 5 9 7 3 5 7 3 8 6 2 6 2 8 8 8 6 9 5 1 3 3 2 9 7 6 8 2 3 4 6 7 4 8 1 4 5 5 7 7 4 5 8 9 6 2 1225 7 9 6...
output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 1...
result:
ok 75000 numbers
Subtask #16:
score: 5
Accepted
Dependency #14:
100%
Accepted
Dependency #15:
100%
Accepted
Test #16:
score: 5
Accepted
time: 1244ms
memory: 127248kb
input:
80000 80000 36 90 42 28 58 80 90 68 41 93 51 46 31 59 94 62 17 48 63 27 64 83 69 43 81 1 4 32 98 57 38 56 83 21 6 95 29 63 44 88 74 45 75 75 51 45 89 33 37 50 3 11 1 69 66 87 12 44 11 90 4 66 17 97 37 21 89 11 84 71 53 60 11 63 34 86 99 61 60 79 37 24 50 15 2 88 11 16 79 36 70 89 81 41 55 51 18 99 8...
output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 ...
result:
ok 80000 numbers
Subtask #17:
score: 5
Accepted
Dependency #16:
100%
Accepted
Test #17:
score: 5
Accepted
time: 1384ms
memory: 127988kb
input:
85000 85000 35 30 17 21 1 8 55 71 93 22 77 80 62 1 37 55 95 53 83 60 49 83 84 34 32 90 17 51 65 29 57 71 89 32 18 16 5 39 36 8 92 53 99 85 81 18 42 72 2 74 51 15 34 12 20 76 8 39 2 64 5 81 64 80 94 31 92 47 91 10 19 98 85 21 16 66 38 20 24 98 80 19 29 43 81 85 82 46 22 65 41 89 75 49 50 70 88 2 85 5...
output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 ...
result:
ok 85000 numbers
Subtask #18:
score: 5
Accepted
Dependency #17:
100%
Accepted
Test #18:
score: 5
Accepted
time: 1505ms
memory: 130720kb
input:
90000 90000 81 45 45 33 1 89 77 35 65 10 35 12 63 23 72 87 69 19 55 63 29 36 84 42 44 46 58 3 15 35 41 29 81 85 21 81 3 91 81 77 75 23 26 95 26 65 62 62 22 15 53 54 76 100 26 47 66 49 71 10 22 47 29 67 10 70 77 48 14 35 39 44 29 84 57 61 97 26 12 59 98 10 51 11 67 77 10 17 37 90 4 99 45 89 37 95 26 ...
output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 ...
result:
ok 90000 numbers
Subtask #19:
score: 0
Wrong Answer
Dependency #18:
100%
Accepted
Test #19:
score: 0
Wrong Answer
time: 1598ms
memory: 130508kb
input:
95000 95000 48 85 52 2 4 17 29 38 93 62 69 46 27 9 15 57 15 24 39 96 14 93 99 34 94 27 95 21 83 38 60 7 80 28 33 95 3 67 29 53 69 7 95 37 31 6 14 33 86 3 77 3 9 83 24 4 29 45 5 39 92 37 85 86 99 48 48 84 22 81 12 38 80 74 71 42 36 30 32 23 41 4 30 7 38 42 81 47 88 32 75 98 71 97 33 39 21 33 35 87 91...
output:
-13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 ...
result:
wrong answer 1st numbers differ - expected: '1', found: '-13'
Subtask #20:
score: 0
Skipped
Dependency #19:
0%