Submission #71362420


Source Code Expand

#include <bits/stdc++.h>
using namespace std;

int main () {
  ios_base::sync_with_stdio(0); cin.tie(0);
  int n;
  string s;
  cin >> n >> s;
  vector<int> a(n);
  for (auto& x: a) cin >> x;
  while (s.back() == '#') {
    s.pop_back();
    a.pop_back();
  }
  int c = 0;
  while (s[c] == '#') c++;
  s = s.substr(c);
  a = vector<int>(a.begin() + c, a.end());
  n = s.size();

  int mx = *max_element(a.begin(), a.end());
  vector<pair<int, int>> seg_mx_cnt;
  vector<int> has_mx;
  for (int l = 0; l < n;) {
    int r = l;
    while (r < n && s[r] == s[l]) r++;
    if (s[l] == '.') {
      int seg_mx = *max_element(a.begin() + l, a.begin() + r);
      seg_mx_cnt.emplace_back(count(a.begin() + l, a.begin() + r, seg_mx), seg_mx == mx);
    }
    else {
      has_mx.push_back(count(a.begin() + l, a.begin() + r, mx) > 0);
    }
    l = r;
  }
  int64_t ans = 0;
  for (int i = 0; i < (int)has_mx.size(); i++) {
    if (has_mx[i] || seg_mx_cnt[i].second || seg_mx_cnt[i+1].second) {
      ans += 1LL*seg_mx_cnt[i].first*seg_mx_cnt[i+1].first;
    }
  }
  cout << ans << '\n';
}

Submission Info

Submission Time
Task C - Forest
User AndrewG
Language C++23 (GCC 15.2.0)
Score 600
Code Size 1125 Byte
Status AC
Exec Time 13 ms
Memory 6120 KiB

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 1 ms 3520 KiB
00-sample-002.txt AC 1 ms 3716 KiB
00-sample-003.txt AC 1 ms 3568 KiB
01-random-001.txt AC 11 ms 5116 KiB
01-random-002.txt AC 11 ms 5388 KiB
01-random-003.txt AC 10 ms 5372 KiB
01-random-004.txt AC 10 ms 5096 KiB
01-random-005.txt AC 11 ms 5284 KiB
01-random-006.txt AC 12 ms 6036 KiB
01-random-007.txt AC 11 ms 5228 KiB
01-random-008.txt AC 11 ms 5080 KiB
01-random-009.txt AC 12 ms 5940 KiB
01-random-010.txt AC 11 ms 6012 KiB
02-less_segs-001.txt AC 10 ms 5124 KiB
02-less_segs-002.txt AC 10 ms 5064 KiB
02-less_segs-003.txt AC 9 ms 5156 KiB
02-less_segs-004.txt AC 10 ms 4988 KiB
02-less_segs-005.txt AC 10 ms 5280 KiB
02-less_segs-006.txt AC 10 ms 5344 KiB
02-less_segs-007.txt AC 10 ms 5156 KiB
02-less_segs-008.txt AC 10 ms 5124 KiB
02-less_segs-009.txt AC 10 ms 5236 KiB
02-less_segs-010.txt AC 11 ms 5256 KiB
03-many_segs-001.txt AC 11 ms 6040 KiB
03-many_segs-002.txt AC 13 ms 5308 KiB
03-many_segs-003.txt AC 12 ms 5976 KiB
03-many_segs-004.txt AC 11 ms 5088 KiB
03-many_segs-005.txt AC 12 ms 5272 KiB
03-many_segs-006.txt AC 13 ms 5412 KiB
03-many_segs-007.txt AC 12 ms 5312 KiB
03-many_segs-008.txt AC 11 ms 5196 KiB
03-many_segs-009.txt AC 12 ms 5168 KiB
03-many_segs-010.txt AC 12 ms 5160 KiB
04-large-001.txt AC 13 ms 5444 KiB
04-large-002.txt AC 12 ms 6076 KiB
04-large-003.txt AC 12 ms 5348 KiB
04-large-004.txt AC 13 ms 5936 KiB
04-large-005.txt AC 12 ms 5244 KiB
04-large-006.txt AC 13 ms 6060 KiB
04-large-007.txt AC 11 ms 5296 KiB
04-large-008.txt AC 11 ms 5292 KiB
04-large-009.txt AC 12 ms 5352 KiB
04-large-010.txt AC 12 ms 6120 KiB
05-small-001.txt AC 1 ms 3516 KiB
05-small-002.txt AC 1 ms 3648 KiB
05-small-003.txt AC 1 ms 3584 KiB
05-small-004.txt AC 1 ms 3632 KiB
05-small-005.txt AC 1 ms 3564 KiB
05-small-006.txt AC 1 ms 3608 KiB
05-small-007.txt AC 1 ms 3584 KiB
05-small-008.txt AC 1 ms 3508 KiB
05-small-009.txt AC 1 ms 3644 KiB
05-small-010.txt AC 1 ms 3556 KiB
06-killer-001.txt AC 11 ms 5284 KiB