QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#405115#8229. 栈strcmp#0 0ms0kbC++141.3kb2024-05-05 11:30:232024-05-05 11:30:24

Judging History

你现在查看的是最新测评结果

  • [2024-05-05 11:30:24]
  • 评测
  • 测评结果:0
  • 用时:0ms
  • 内存:0kb
  • [2024-05-05 11:30:23]
  • 提交

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;
}

Details

Tip: Click on the bar to expand more detailed information

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%