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