QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#405115 | #8229. 栈 | strcmp# | 0 | 0ms | 0kb | C++14 | 1.3kb | 2024-05-05 11:30:23 | 2024-05-05 11:30:24 |
answer
#include <bits/stdc++.h>
#define X first
#define Y second
using namespace std;
typedef long long int ll;
using pii = pair<int, int>;
const int maxn = 2e5 + 10;
constexpr int mod = 1e9 + 7;
int n, m; vector<pii>s[maxn];
int main() {
scanf("%d%d", &n, &m);
while (m--) {
int o, l, r, x, y; ll p, q;
scanf("%d", &o);
if (o == 1) {
scanf("%d%d%d%d", &l, &r, &x, &y);
for (int i = l; i <= r; i++) s[i].push_back({ y, x });
}
else if (o == 2) {
scanf("%d%d%lld", &l, &r, &p);
for (int i = l; i <= r; i++) {
ll np = p;
while (!s[i].empty() && np - s[i].back().Y >= 0) np -= s[i].back().Y, s[i].pop_back();
if (!s[i].empty()) s[i].back().Y -= np;
}
}
else {
scanf("%d%lld%lld", &x, &p, &q); ll d = 0;
for (int i = 0; i < s[x].size(); i++) d += s[x][i].Y;
q = min(q, d);
ll np = 0, nq = 0, sum = 0; int i = 0;
for (i = 0; i < s[x].size(); i++) {
if (np + s[x][i].Y < p) np += s[x][i].Y;
else break;
}
sum += min(q - p + 1, nq += (np + s[x][i].Y - p + 1)) * s[x][i].X; ++i;
for (; i < s[x].size(); i++) {
if (nq + s[x][i].Y <= q - p + 1) sum += (ll)s[x][i].X * s[x][i].Y;
else break;
}
if (i != s[x].size()) sum += min((q - p - nq + 1), (ll)s[x][i].Y) * s[x][i].X;
printf("%lld\n", sum);
}
}
return 0;
}
详细
Subtask #1:
score: 0
Runtime Error
Test #1:
score: 0
Runtime Error
input:
4907 4910 2 763 3330 1 3 307 1 1 1 2262 3430 22699 89397 1 1915 4000 51541 67587 2 212 2990 9763 2 1086 2162 1 2 1813 4496 16760 1 51 2796 68005 99390 1 1267 1519 74236 66178 3 1768 23808 54314 2 900 4122 27758 3 3287 17350 28989 2 3277 4024 3633 2 444 4866 1 2 353 4219 1061 1 987 3141 99906 17320 2...
output:
result:
Subtask #2:
score: 0
Runtime Error
Test #6:
score: 0
Runtime Error
input:
99999 99998 1 5026 18575 27178 90423 3 30623 1 1 3 76936 1 1 1 77021 95683 84664 24734 1 46085 74886 40512 11266 3 5048 8594 22468 1 53318 77721 97151 70784 1 70645 91192 37556 13013 1 56752 56940 91812 62887 1 7928 34576 87339 69404 3 74875 32807 100970 3 22338 17221 25771 3 21421 20602 57957 3 717...
output:
result:
Subtask #3:
score: 0
Runtime Error
Test #12:
score: 0
Runtime Error
input:
100000 99993 1 47773 70467 16065 1 2 52349 78446 2304 3 40821 1 1 1 40216 93069 78144 1 1 41089 43671 76025 1 2 35263 68629 31066 3 79881 13534 57327 3 5556 1 1 2 21962 38192 1 1 664 58116 9417 1 3 28089 6039 7989 2 88500 90302 9946 3 63215 49410 60770 2 11069 89527 57581 2 70303 97603 12363 1 3420 ...
output:
result:
Subtask #4:
score: 0
Runtime Error
Test #17:
score: 0
Runtime Error
input:
99999 99996 3 77889 1 10000000000 1 6316 86327 89644 386 3 9260 1 10000000000 2 2603 47234 69717 2 20260 73011 19290 2 62477 81233 26127 1 50140 68508 37004 98794 2 14449 22788 16063 1 43860 84932 50375 21777 1 67345 94584 28202 66610 2 661 68654 1 1 14411 94422 82738 61196 1 16563 94416 4920 38408 ...
output:
result:
Subtask #5:
score: 0
Skipped
Dependency #1:
0%