Submission #75259765
Source Code Expand
#line 2 "/Users/blue_jam/ProconLibrary/misc/template.hpp"
#include <atcoder/all>
#include <bits/stdc++.h>
using namespace std;
using namespace atcoder;
#define ALL(x) (x).begin(), (x).end()
using ll = long long;
#ifndef EPS
const double eps = 1e-10;
#else
const double eps = EPS;
#endif
#line 2 "abc455/E/main.cpp"
void solve(long long N, std::string S) {
for (ll i = 0; i < N; i++) {
S[i] -= 'A';
}
ll t[3][3];
map<ll, vector<ll>> mp[3][3];
map<pair<ll,ll>, ll> mp2;
for (ll i = 0; i < 3; i++) {
for (ll j = i + 1; j < 3; j++) {
t[i][j] = 0;
mp[i][j][0].push_back(0);
}
}
mp2[{0, 0}]++;
for (ll i = 0; i < N; i++) {
for (ll j = 0; j < 3; j++) {
for (ll k = j + 1; k < 3; k++) {
if (S[i] == j) {
t[j][k]++;
} else if (S[i] == k) {
t[j][k]--;
}
mp[j][k][t[j][k]].push_back(i + 1);
}
}
mp2[{t[0][1], t[1][2]}]++;
}
ll ans = 0;
for (ll i = 0; i < 3; i++) {
for (ll j = i + 1; j < 3; j++) {
for (auto &&[t, v] : mp[i][j]) {
ll n = v.size();
ans += n * (n - 1) / 2;
}
}
}
for (auto [p, n] : mp2) {
// cerr << p.first << "," << p.second << ":" << n << endl;
ans -= n * (n - 1);
}
cout << N * (N + 1) / 2 - ans << endl;
}
int main() {
long long N;
std::scanf("%lld", &N);
std::string S;
std::cin >> S;
solve(N, S);
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | E - Unbalanced ABC Substrings |
| User | blue_jam |
| Language | C++23 (GCC 15.2.0) |
| Score | 450 |
| Code Size | 1673 Byte |
| Status | AC |
| Exec Time | 155 ms |
| Memory | 61784 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 450 / 450 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt |
| All | 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 01_01.txt, 01_02.txt, 01_03.txt, 01_04.txt, 01_05.txt, 01_06.txt, 01_07.txt, 01_08.txt, 01_09.txt, 01_10.txt, 01_11.txt, 01_12.txt, 01_13.txt, 01_14.txt, 01_15.txt, 01_16.txt, 01_17.txt, 01_18.txt, 01_19.txt, 01_20.txt, 01_21.txt, 01_22.txt, 02_01.txt, 02_02.txt, 02_03.txt, 02_04.txt, 02_05.txt, 02_06.txt, 03_1.txt, 03_2.txt, 03_3.txt, 04_1.txt, 04_2.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_01.txt | AC | 1 ms | 3756 KiB |
| 00_sample_02.txt | AC | 1 ms | 3784 KiB |
| 00_sample_03.txt | AC | 1 ms | 3772 KiB |
| 01_01.txt | AC | 1 ms | 3712 KiB |
| 01_02.txt | AC | 1 ms | 3636 KiB |
| 01_03.txt | AC | 1 ms | 3828 KiB |
| 01_04.txt | AC | 1 ms | 3772 KiB |
| 01_05.txt | AC | 1 ms | 3700 KiB |
| 01_06.txt | AC | 1 ms | 3712 KiB |
| 01_07.txt | AC | 1 ms | 3708 KiB |
| 01_08.txt | AC | 1 ms | 3644 KiB |
| 01_09.txt | AC | 1 ms | 3644 KiB |
| 01_10.txt | AC | 1 ms | 3740 KiB |
| 01_11.txt | AC | 31 ms | 10288 KiB |
| 01_12.txt | AC | 76 ms | 24892 KiB |
| 01_13.txt | AC | 3 ms | 4352 KiB |
| 01_14.txt | AC | 73 ms | 23992 KiB |
| 01_15.txt | AC | 47 ms | 13532 KiB |
| 01_16.txt | AC | 4 ms | 5052 KiB |
| 01_17.txt | AC | 49 ms | 13588 KiB |
| 01_18.txt | AC | 135 ms | 41928 KiB |
| 01_19.txt | AC | 53 ms | 14656 KiB |
| 01_20.txt | AC | 122 ms | 41828 KiB |
| 01_21.txt | AC | 51 ms | 14300 KiB |
| 01_22.txt | AC | 117 ms | 41948 KiB |
| 02_01.txt | AC | 155 ms | 61768 KiB |
| 02_02.txt | AC | 150 ms | 61700 KiB |
| 02_03.txt | AC | 150 ms | 61660 KiB |
| 02_04.txt | AC | 145 ms | 61784 KiB |
| 02_05.txt | AC | 149 ms | 61728 KiB |
| 02_06.txt | AC | 149 ms | 61728 KiB |
| 03_1.txt | AC | 11 ms | 11144 KiB |
| 03_2.txt | AC | 11 ms | 11296 KiB |
| 03_3.txt | AC | 11 ms | 11264 KiB |
| 04_1.txt | AC | 117 ms | 40236 KiB |
| 04_2.txt | AC | 114 ms | 40224 KiB |