QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#69010#4590. Happy Travellingduongnc000WA 78ms20108kbC++203.2kb2022-12-22 13:38:032022-12-22 13:38:06

Judging History

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

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2022-12-22 13:38:06]
  • 评测
  • 测评结果:WA
  • 用时:78ms
  • 内存:20108kb
  • [2022-12-22 13:38:03]
  • 提交

answer

/*
#pragma GCC optimize("Ofast")
#pragma GCC target("avx2")
#pragma GCC optimize("unroll-loops")
*/
#include <bits/stdc++.h>
#define int long long
#define taskname "bai3"
#define all(x) x.begin(), x.end()
#define ll long long
#define ld long double
#define pb push_back
#define mp make_pair
#define ff first
#define ss second
#define pii pair<int, int>
#define vi vector<int>
using namespace std;

const int mxN = 1e5 + 5;
const int mod = 1e9 + 7;
const ll oo = 1e18;

int n, k, d, a[mxN], b[mxN], st[4 * mxN], dp[mxN];
vector<pii> segments;
set<pii> s[mxN];

bool sortbysec(pii x, pii y) {
	if(x.ss == y.ss) return (x.ff < y.ff);
	return (x.ss < y.ss);
}

void build(int l, int r, int idx) {
	if(l == r) {
		st[idx] = -oo;
		return;
	}
	int mid = (l + r) >> 1;
	build(l, mid, idx * 2);
	build(mid + 1, r, idx * 2 + 1);
	st[idx] = max(st[idx * 2], st[idx * 2 + 1]);
}


void update1(int l, int r, int idx, int pos, int val) {
	if(l == r) {
		st[idx] = val;
		return;
	}
	int mid = (l + r) >> 1;
	if(pos <= mid) update1(l, mid, idx * 2, pos, val);
	else update1(mid + 1, r, idx * 2 + 1, pos, val);
	st[idx] = max(st[idx * 2], st[idx * 2 + 1]);
}

int get(int l, int r, int idx, int u, int v) {
	if(v < u) return -oo;
	if(r < u || v < l) return -oo;
	if(u <= l && r <= v) {
		//cout << l << " " << r << " " << idx << " " << st[idx] << endl;
		return st[idx];
	}
	int mid = (l + r) >> 1;
	return max(get(l, mid, idx * 2, u, v), get(mid + 1, r, idx * 2 + 1, u, v));
}

void solve() {
	cin >> n >> k >> d;
	build(1, k, 1);
	for(int i = 1; i <= n; ++i) cin >> a[i];
	for(int i = 1; i < n; ++i) {
		cin >> b[i];
		segments.pb({i, i + b[i]});
	}
	sort(all(segments), sortbysec);

	dp[1] = a[1]; s[1 % k].insert({dp[1] + (1 / k) * d, 1});
	update1(1, k, 1, (1 % k) + 1, dp[1]);

	int idx = 0;
	for(int i = 2; i <= n; ++i) {
		while(idx + 1 < n && segments[idx].ss < i) {
			int i_ = segments[idx].ff;
			int tmp = i_ % k, tmp1 = i_ / k;
			s[tmp].erase({dp[i_] + tmp1 * d, i_});
			pii lst = {-oo, oo};
			if(!s[tmp].empty()) lst = *prev(s[tmp].end());
			update1(1, k, 1, tmp + 1, lst.ff);
			++idx;
		}

		int tmp = i % k, tmp1 = i / k;

		if(tmp1 < 1) {
			int get1 = get(1, k, 1, 1, tmp + 1);
			//cout << get1 << endl;
			get1 -= tmp1 * d;
			dp[i] = a[i] + get1;
		}
		else {
			int get1 = get(1, k, 1, 1, tmp + 1), get2 = get(1, k, 1, tmp + 2, k);
			get1 -= tmp1 * d;
			get2 -= (tmp1 - 1) * d;
			//cout << get1 << " " << get2 << endl;
 			dp[i] = a[i] + max(get1, get2);
		}

		//cout << "dp: " << i << " " << dp[i] << endl;

		s[tmp].insert({dp[i] + tmp1 * d, i});
		pii lst = *prev(s[tmp].end());
		update1(1, k, 1, tmp + 1, lst.ff);

	}

	cout << dp[n] << endl;
}

signed main() {

#ifdef CDuongg
	freopen("bai3.inp", "r", stdin);
	freopen("bai3.out", "w", stdout);
	auto start = chrono::high_resolution_clock::now();
#endif

	ios_base::sync_with_stdio(false);
	cin.tie(nullptr);
	int t = 1; //cin >> t;
	while(t--) solve();

#ifdef CDuongg
	auto end = chrono::high_resolution_clock::now();
	cout << "\n"; for(int i = 1; i <= 100; ++i) cout << '=';
	cout << "\nExecution time: " << chrono::duration_cast<chrono::milliseconds> (end - start).count() << "[ms]" << endl;
#endif

}

详细

Test #1:

score: 100
Accepted
time: 2ms
memory: 8088kb

input:

6 2 1
8 -7 -8 9 0 2
5 3 3 2 1

output:

18

result:

ok single line: '18'

Test #2:

score: 0
Accepted
time: 5ms
memory: 8088kb

input:

8 8 8
10 -5 -5 -5 -5 -5 -5 10
5 2 5 3 2 1 1

output:

15

result:

ok single line: '15'

Test #3:

score: 0
Accepted
time: 2ms
memory: 8076kb

input:

13 2 2
-5 -4 -4 -1 7 -6 -5 -4 -3 -2 -1 5 -7
3 10 9 8 7 6 5 4 3 2 1 1

output:

-9

result:

ok single line: '-9'

Test #4:

score: 0
Accepted
time: 5ms
memory: 8168kb

input:

2 1 0
-10000 10000
1

output:

0

result:

ok single line: '0'

Test #5:

score: 0
Accepted
time: 68ms
memory: 15780kb

input:

98987 4 3
-8225 -8961 -5537 -5621 -8143 -5214 -5538 -6912 -6601 -8839 -7872 -7867 -9553 -9793 -7333 -7360 -5820 -7459 -8824 -9716 -9757 -5846 -5300 -5912 -7953 -8360 -7609 -5937 -5525 -9748 -7326 -8311 -9979 -9292 -8542 -7589 -7939 -5914 -7985 -9999 -9212 -8274 -8084 -6620 -5991 -7826 -6327 -5228 -6...

output:

-84108

result:

ok single line: '-84108'

Test #6:

score: 0
Accepted
time: 59ms
memory: 15952kb

input:

98467 2 3
-5677 -9080 -6665 -5838 -5755 -8938 -6286 -5160 -7147 -8370 -8214 -6088 -9763 -5183 -7123 -7264 -5298 -8855 -6381 -6592 -9216 -8429 -9598 -7443 -7393 -8712 -5545 -6778 -6010 -5717 -9102 -7968 -6140 -9592 -7917 -5217 -5015 -7798 -9339 -5678 -7073 -7607 -7961 -6185 -9941 -6421 -8779 -5388 -8...

output:

-150169

result:

ok single line: '-150169'

Test #7:

score: 0
Accepted
time: 67ms
memory: 15668kb

input:

96173 2 1
-6463 -9099 -6269 -6169 -8273 -9839 -9929 -5447 -5908 -6884 -6908 -8359 -6477 -9414 -9207 -8180 -6264 -9293 -8981 -6557 -9260 -9700 -6785 -7121 -8382 -9712 -5178 -5821 -9107 -9004 -7472 -9306 -9311 -7160 -7965 -5394 -8048 -7415 -5233 -7746 -7390 -5298 -7721 -7915 -9646 -5371 -5712 -6234 -5...

output:

-45780

result:

ok single line: '-45780'

Test #8:

score: 0
Accepted
time: 50ms
memory: 17884kb

input:

96905 1 1
-7933 -5685 -6201 -5415 -7294 -9904 -8968 -8433 -6287 -6727 -5933 -5418 -8953 -6743 -7057 -7087 -7244 -5302 -5130 -8934 -5053 -9811 -8695 -5989 -7785 -5991 -8351 -9463 -7037 -8867 -8956 -8194 -5272 -6270 -7737 -7793 -8851 -5839 -5178 -7009 -8018 -7375 -6091 -9226 -7117 -9522 -9248 -6036 -8...

output:

-72336

result:

ok single line: '-72336'

Test #9:

score: 0
Accepted
time: 48ms
memory: 17768kb

input:

97070 2 1
-6843 -9736 -7145 -9801 -6733 -7807 -8835 -5776 -6971 -7101 -8428 -7429 -9250 -9405 -6152 -7904 -5761 -8347 -6597 -8875 -8741 -7759 -8905 -9136 -8820 -9272 -9124 -6384 -7302 -5351 -8660 -5499 -9551 -9598 -9332 -7226 -5354 -9753 -7657 -5512 -7806 -5845 -5320 -9052 -8654 -9068 -5744 -7548 -7...

output:

-52581

result:

ok single line: '-52581'

Test #10:

score: 0
Accepted
time: 38ms
memory: 19560kb

input:

95643 95643 0
-5396 -7667 -7724 -8395 -5929 -5814 -6879 -7612 -6487 -5657 -6266 -7551 -8950 -6584 -5148 -7025 -7570 -6296 -6031 -7598 -5852 -5859 -7943 -6304 -6896 -5652 -9303 -5869 -9073 -6843 -7438 -6428 -8896 -5239 -7793 -6730 -7331 -7202 -8118 -9344 -8450 -8315 -8402 -8705 -5246 -9043 -7347 -872...

output:

-13774

result:

ok single line: '-13774'

Test #11:

score: 0
Accepted
time: 32ms
memory: 20108kb

input:

100000 99999 476
-109 -1014 -1404 -1837 -712 -1500 -1760 -751 184 -333 -860 -418 -1676 -1499 -1506 -456 -1692 -1473 -1872 -1523 -599 461 -583 -1685 -94 121 53 -385 192 -562 -1169 220 366 -746 -584 -1395 325 -502 98 -1773 -293 -72 -1894 -449 416 -1001 -1350 -1842 -1279 -528 323 -1196 32 -83 -1112 410...

output:

4735350

result:

ok single line: '4735350'

Test #12:

score: 0
Accepted
time: 44ms
memory: 11488kb

input:

93009 101 191
-278 -103 -706 -686 -521 -375 -330 -183 -381 -91 -686 -683 -89 -448 -724 -71 -374 -470 -214 -475 -505 -599 -108 -157 -199 -541 -509 -477 -62 -96 -415 -49 -524 -93 -230 -745 -561 -47 -451 -165 -763 -461 -357 -555 -757 -52 -246 -297 -145 -599 -36 -366 -157 -200 -38 -344 -105 -509 -54 -41...

output:

1532

result:

ok single line: '1532'

Test #13:

score: 0
Accepted
time: 73ms
memory: 13824kb

input:

97621 313 252
-459 -973 -853 -287 -579 -817 -629 -187 -509 -814 -628 -742 -369 -503 -519 -213 -393 -708 -776 -222 -147 -760 -558 -926 -439 -437 -729 -16 -932 -964 -508 -809 -434 -186 -440 -142 -828 -11 -521 -282 -718 -976 -832 -760 -574 -461 -432 -219 -182 -2 -27 -638 -598 -800 -907 -510 -127 -429 -...

output:

3749

result:

ok single line: '3749'

Test #14:

score: 0
Accepted
time: 41ms
memory: 11684kb

input:

95287 250 112
-46 -248 -159 -372 -271 -352 -296 -31 -3 -397 -32 -73 -276 -443 -246 -236 -265 -102 -435 -398 -211 -376 -78 -277 -272 -446 -54 -345 -89 -73 -286 -210 -79 -424 -171 -260 -45 -341 -257 -300 -301 -19 4 -52 -223 -280 1 -99 -88 -143 -433 -72 -46 -333 -189 -115 -147 -401 -73 -365 -398 -152 -...

output:

9254

result:

ok single line: '9254'

Test #15:

score: 0
Accepted
time: 5ms
memory: 8132kb

input:

7 7 10000
7 3 -1 -6 3 4 1
6 5 4 3 2 1

output:

18

result:

ok single line: '18'

Test #16:

score: 0
Accepted
time: 48ms
memory: 11612kb

input:

93094 1415 354
-362 -297 12 34 -37 -924 265 -34 -835 -884 -245 -323 -856 -1166 -386 -642 288 -92 -275 -446 -121 -1345 -126 -13 -1378 -442 -24 -479 171 256 -582 -223 -65 -1114 -614 -197 -862 -552 -908 -718 -489 -585 -1148 -356 322 276 -252 -1295 104 86 332 -918 -1407 -1393 -336 -413 -1186 -1348 -435 ...

output:

3296610

result:

ok single line: '3296610'

Test #17:

score: 0
Accepted
time: 55ms
memory: 11560kb

input:

93543 1224 505
370 58 -1403 -1253 184 -2011 -1632 -1565 -978 -1908 -923 270 96 -1851 -897 -1278 -780 -957 -1674 -68 390 -256 -335 -977 -470 -1412 364 -1737 -951 336 -1487 -1266 -1326 400 -1748 -134 -1626 -1400 -163 226 4 -1401 -346 -1168 -1094 391 -1285 -701 -1550 -1443 343 -580 -1836 -1717 306 -161...

output:

4722004

result:

ok single line: '4722004'

Test #18:

score: 0
Accepted
time: 73ms
memory: 16260kb

input:

97347 39394 566
481 -427 -858 -726 -1285 -1337 -1253 -1080 -1990 -773 -1921 -1616 -463 310 -1447 -106 -1377 -2061 -565 -1444 -1412 353 -973 -1891 231 -70 -962 40 -1746 -1315 -1653 -4 375 -1719 464 238 -1516 -1331 -1244 -144 -1660 -1814 -179 -2150 -374 -113 -1578 -146 -131 -1946 -558 -222 -1253 -1308...

output:

5535209

result:

ok single line: '5535209'

Test #19:

score: 0
Accepted
time: 64ms
memory: 14584kb

input:

90834 53418 728
-9217 -6814 2547 -12 -6989 -1516 7814 159 -7793 -5319 6381 -904 3222 3010 -8266 -3940 1083 1871 -7986 4337 5752 3998 -6748 9530 2165 798 7563 -8385 -6673 2314 -6850 -6010 -4575 -319 -3432 -6025 500 -8768 -9599 9413 6230 -6120 6854 8981 1721 9406 -3615 5754 -3131 -601 -9062 -7899 5998...

output:

228261947

result:

ok single line: '228261947'

Test #20:

score: 0
Accepted
time: 47ms
memory: 11664kb

input:

95214 148 40
-43 -150 -132 -67 -130 -16 -50 -139 -90 -23 -110 -85 3 -5 -2 -48 -73 -154 -74 -12 -37 -15 -21 -14 1 -86 -121 -91 -17 -13 -5 -21 -90 -124 -75 -115 -150 -81 -125 -72 -3 -99 -77 4 -136 -36 -58 -117 -131 -33 -43 -85 -8 -22 -128 -100 -68 -160 -20 -160 -92 -27 -53 -88 -125 -88 -147 -75 -12 -2...

output:

5623

result:

ok single line: '5623'

Test #21:

score: 0
Accepted
time: 78ms
memory: 14092kb

input:

99909 317 446
-76 -1003 -1280 -512 -1456 -776 -80 -43 -1389 -462 -458 -784 -819 -1732 -369 -1395 -1570 -1722 -103 -877 -897 -742 -1191 -524 -1060 -988 -266 -1269 -812 -1246 -1321 -375 -273 -35 -359 -201 -731 -553 -470 -1276 -1522 -597 -1257 -1208 -133 -961 -1466 -218 -720 -1190 -999 -720 -1443 -1383...

output:

1522

result:

ok single line: '1522'

Test #22:

score: 0
Accepted
time: 46ms
memory: 11684kb

input:

92058 306 267
-381 -715 -880 -34 -5 -312 -316 -91 -742 -383 -539 -917 -92 -595 -509 -905 -536 -555 -449 -432 -713 -248 -457 -525 -837 -561 -908 -943 -305 -420 -495 -461 -1062 -856 -706 -1016 -456 -335 -803 -726 -795 -434 -473 -152 -674 -1062 -841 -711 -726 -468 -11 -509 -61 -27 -698 -166 -263 -742 -...

output:

560

result:

ok single line: '560'

Test #23:

score: 0
Accepted
time: 47ms
memory: 11732kb

input:

94369 1373 587
-1904 -1621 -793 -829 -2011 -599 -1367 -571 76 -1049 -813 -1300 -1195 85 -917 -658 -1367 553 -1492 -1145 -1371 -136 -1234 -179 -2348 -844 -895 -2063 -785 -357 -145 -2232 243 -1963 -1232 -2271 -1701 -844 -937 -772 515 510 -1322 -978 467 -830 -2024 -2146 -2246 -436 -1610 473 -647 72 -14...

output:

5541089

result:

ok single line: '5541089'

Test #24:

score: 0
Accepted
time: 56ms
memory: 11800kb

input:

97084 1193 347
-221 -923 -428 -1360 -1087 167 -586 -1304 -154 -523 289 -454 -1315 -787 -621 -36 -1074 -1200 -974 -1024 -824 -445 -980 -844 -78 -1030 -1342 -336 -452 -1341 67 -835 225 -1080 -268 -147 -983 -748 -508 -96 223 -984 -873 -1030 -325 -1162 -1083 -82 -1272 -695 323 -1277 292 268 -1082 -1140 ...

output:

3343916

result:

ok single line: '3343916'

Test #25:

score: 0
Accepted
time: 54ms
memory: 16520kb

input:

96623 48663 409
-483 -1205 -1198 -188 -799 -770 28 -447 -229 -2 -1351 -561 -31 264 177 -110 -484 -1122 -1540 311 -977 105 -169 -1409 -1474 -1029 44 -801 -1526 193 -1134 -757 -1565 187 -533 -1525 -106 -497 -1089 286 -1497 -717 -234 -1444 -1407 -412 -634 369 -130 -268 160 -1218 -1122 -307 -918 -1315 -...

output:

3958603

result:

ok single line: '3958603'

Test #26:

score: -100
Wrong Answer
time: 23ms
memory: 12044kb

input:

100000 1 10000
-10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -1000...

output:

-2000000000

result:

wrong answer 1st lines differ - expected: '-1999990000', found: '-2000000000'