Submission #71365950


Source Code Expand

#include <bits/stdc++.h>

using namespace std;

#ifdef LOCAL
#define debug(arg) cout << "[" << #arg << "]: " << arg << endl
#else
#define debug(arg) 42
#endif

using llu = unsigned long long;
using ll = long long;

#define vec vector
#define all(n) begin(n), end(n)
#define pb push_back

void solv() {
	int n; cin >> n;
	string s; cin >> s;
	vec<llu> R(n); for (auto &i : R) cin >> i;
	s += 'x';
	R.pb(0);
	llu mx = 0;
	llu mxc = 0;
	vec<tuple<llu, llu, bool>> groups;
	auto update = [&](llu cur) {
		if (cur > mx) mx = cur, mxc = 1;
		else if (cur == mx) ++mxc;
	};
	for (int l = 0, r = 0; r <= n; update(R[r++])) if (s[l] != s[r]) {
		groups.pb({mx, mxc, s[l] != '#'});
		mx = 0, mxc = 0;
		l = r;
	}
	if (!get<2>(groups.front())) groups.erase(groups.begin());
	if (!get<2>(groups.back())) groups.erase(--groups.end());
	auto it = max_element(all(groups));
	mx = get<0>(*it);
	llu ans = 0;
	for (int i = 2; i < groups.size(); i += 2) {
		auto &[l, lc, _1] = groups[i - 2];
		auto &[m, _2, _3] = groups[i - 1];
		auto &[r, rc, _4] = groups[i - 0];
		debug(l << ' ' << lc);
		debug(m);
		debug(r << ' ' << rc);
		if (l == mx || m == mx || r == mx) ans += lc*rc;
	}
	cout << ans << '\n';
}

signed main() {
	ios_base::sync_with_stdio(0), cin.tie(0);
	int t = 1;
	//cin >> t;
	while (t--) solv();
	return 0;
}

Submission Info

Submission Time
Task C - Forest
User fisher199
Language C++23 (Clang 21.1.0)
Score 600
Code Size 1367 Byte
Status AC
Exec Time 84 ms
Memory 12472 KiB

Compile Error

./Main.cpp:41:20: warning: comparison of integers of different signs: 'int' and 'size_type' (aka 'unsigned long') [-Wsign-compare]
   41 |         for (int i = 2; i < groups.size(); i += 2) {
      |                         ~ ^ ~~~~~~~~~~~~~
1 warning generated.

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 600 / 600
Status
AC × 3
AC × 54
Set Name Test Cases
Sample 00-sample-001.txt, 00-sample-002.txt, 00-sample-003.txt
All 00-sample-001.txt, 00-sample-002.txt, 00-sample-003.txt, 01-random-001.txt, 01-random-002.txt, 01-random-003.txt, 01-random-004.txt, 01-random-005.txt, 01-random-006.txt, 01-random-007.txt, 01-random-008.txt, 01-random-009.txt, 01-random-010.txt, 02-less_segs-001.txt, 02-less_segs-002.txt, 02-less_segs-003.txt, 02-less_segs-004.txt, 02-less_segs-005.txt, 02-less_segs-006.txt, 02-less_segs-007.txt, 02-less_segs-008.txt, 02-less_segs-009.txt, 02-less_segs-010.txt, 03-many_segs-001.txt, 03-many_segs-002.txt, 03-many_segs-003.txt, 03-many_segs-004.txt, 03-many_segs-005.txt, 03-many_segs-006.txt, 03-many_segs-007.txt, 03-many_segs-008.txt, 03-many_segs-009.txt, 03-many_segs-010.txt, 04-large-001.txt, 04-large-002.txt, 04-large-003.txt, 04-large-004.txt, 04-large-005.txt, 04-large-006.txt, 04-large-007.txt, 04-large-008.txt, 04-large-009.txt, 04-large-010.txt, 05-small-001.txt, 05-small-002.txt, 05-small-003.txt, 05-small-004.txt, 05-small-005.txt, 05-small-006.txt, 05-small-007.txt, 05-small-008.txt, 05-small-009.txt, 05-small-010.txt, 06-killer-001.txt
Case Name Status Exec Time Memory
00-sample-001.txt AC 2 ms 3080 KiB
00-sample-002.txt AC 1 ms 3056 KiB
00-sample-003.txt AC 1 ms 3048 KiB
01-random-001.txt AC 77 ms 7444 KiB
01-random-002.txt AC 77 ms 9124 KiB
01-random-003.txt AC 73 ms 6268 KiB
01-random-004.txt AC 73 ms 6012 KiB
01-random-005.txt AC 79 ms 9160 KiB
01-random-006.txt AC 83 ms 10928 KiB
01-random-007.txt AC 75 ms 9124 KiB
01-random-008.txt AC 75 ms 9180 KiB
01-random-009.txt AC 77 ms 12340 KiB
01-random-010.txt AC 78 ms 12264 KiB
02-less_segs-001.txt AC 69 ms 6204 KiB
02-less_segs-002.txt AC 74 ms 6192 KiB
02-less_segs-003.txt AC 69 ms 6236 KiB
02-less_segs-004.txt AC 80 ms 6356 KiB
02-less_segs-005.txt AC 77 ms 6460 KiB
02-less_segs-006.txt AC 76 ms 6280 KiB
02-less_segs-007.txt AC 70 ms 6200 KiB
02-less_segs-008.txt AC 72 ms 6344 KiB
02-less_segs-009.txt AC 72 ms 6316 KiB
02-less_segs-010.txt AC 77 ms 6460 KiB
03-many_segs-001.txt AC 77 ms 12472 KiB
03-many_segs-002.txt AC 81 ms 9232 KiB
03-many_segs-003.txt AC 76 ms 12252 KiB
03-many_segs-004.txt AC 71 ms 7496 KiB
03-many_segs-005.txt AC 80 ms 9192 KiB
03-many_segs-006.txt AC 75 ms 9192 KiB
03-many_segs-007.txt AC 81 ms 6320 KiB
03-many_segs-008.txt AC 75 ms 9112 KiB
03-many_segs-009.txt AC 76 ms 9180 KiB
03-many_segs-010.txt AC 78 ms 7688 KiB
04-large-001.txt AC 82 ms 9360 KiB
04-large-002.txt AC 84 ms 11120 KiB
04-large-003.txt AC 82 ms 9336 KiB
04-large-004.txt AC 84 ms 11024 KiB
04-large-005.txt AC 80 ms 7348 KiB
04-large-006.txt AC 82 ms 10940 KiB
04-large-007.txt AC 76 ms 6280 KiB
04-large-008.txt AC 74 ms 7356 KiB
04-large-009.txt AC 82 ms 9276 KiB
04-large-010.txt AC 84 ms 11120 KiB
05-small-001.txt AC 1 ms 3080 KiB
05-small-002.txt AC 1 ms 3048 KiB
05-small-003.txt AC 1 ms 3076 KiB
05-small-004.txt AC 1 ms 2964 KiB
05-small-005.txt AC 1 ms 3004 KiB
05-small-006.txt AC 1 ms 3076 KiB
05-small-007.txt AC 1 ms 3048 KiB
05-small-008.txt AC 1 ms 3080 KiB
05-small-009.txt AC 1 ms 3004 KiB
05-small-010.txt AC 1 ms 3084 KiB
06-killer-001.txt AC 78 ms 6336 KiB