Submission #75260760
Source Code Expand
#include <bits/stdc++.h>
#define int long long
#define ll long long
#define ull unsigned long long
#define inf 1e18
#define eps 1e-9
#define ls 2*k
#define rs 2*k+1
using namespace std;
const int N=3e5+5,M=1e7;
const int mod=998244353;
const int dx[4]={0,0,1,-1},dy[4]={1,-1,0,0};
int n;
int sum[N][3];
string s;
map<int,int>cnt1,cnt2,cnt3;
map<pair<int,int>,int>cnt;
signed main(){
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int tc=1;
while(tc--){
cin>>n>>s;
s=" "+s;
int ans=n*(n+1)/2;
for(int i=1;i<=n;i++){
for(int j=0;j<3;j++)
sum[i][j]=sum[i-1][j];
if(s[i]=='A') sum[i][0]++;
else if(s[i]=='B') sum[i][1]++;
else sum[i][2]++;
}
int ret1=0,ret2=0,ret3=0;
cnt1[0]=1,cnt2[0]=1,cnt3[0]=1;
for(int i=1;i<=n;i++){
int now1=sum[i][0]-sum[i][1],now2=sum[i][1]-sum[i][2],now3=sum[i][2]-sum[i][0];
ret1+=cnt1[now1];
ret2+=cnt2[now2];
ret3+=cnt3[now3];
cnt1[now1]++,cnt2[now2]++,cnt3[now3]++;
// cout<<i<<' '<<ret1<<' '<<ret2<<' '<<ret3<<'\n';
}
// cout<<ret1<<' '<<ret2<<' '<<ret3<<'\n';
ans=ans-ret1-ret2-ret3;
int res=0;
cnt[{0,0}]=1;
for(int i=1;i<=n;i++){
int now1=sum[i][0]-sum[i][1],now2=sum[i][1]-sum[i][2];
res+=cnt[{now1,now2}];
cnt[{now1,now2}]++;
}
ans+=res*2;
cout<<ans<<'\n';
}
return 0;
}
/*
6
AABBCC
*/
Submission Info
| Submission Time | |
|---|---|
| Task | E - Unbalanced ABC Substrings |
| User | Limingxuan |
| Language | C++23 (GCC 15.2.0) |
| Score | 450 |
| Code Size | 1422 Byte |
| Status | AC |
| Exec Time | 198 ms |
| Memory | 45952 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 | 3564 KiB |
| 00_sample_02.txt | AC | 1 ms | 3624 KiB |
| 00_sample_03.txt | AC | 1 ms | 3644 KiB |
| 01_01.txt | AC | 1 ms | 3636 KiB |
| 01_02.txt | AC | 1 ms | 3644 KiB |
| 01_03.txt | AC | 1 ms | 3648 KiB |
| 01_04.txt | AC | 1 ms | 3604 KiB |
| 01_05.txt | AC | 1 ms | 3644 KiB |
| 01_06.txt | AC | 1 ms | 3588 KiB |
| 01_07.txt | AC | 1 ms | 3644 KiB |
| 01_08.txt | AC | 1 ms | 3676 KiB |
| 01_09.txt | AC | 1 ms | 3596 KiB |
| 01_10.txt | AC | 1 ms | 3636 KiB |
| 01_11.txt | AC | 35 ms | 8704 KiB |
| 01_12.txt | AC | 56 ms | 19796 KiB |
| 01_13.txt | AC | 3 ms | 4136 KiB |
| 01_14.txt | AC | 52 ms | 19084 KiB |
| 01_15.txt | AC | 55 ms | 11408 KiB |
| 01_16.txt | AC | 3 ms | 4520 KiB |
| 01_17.txt | AC | 57 ms | 11588 KiB |
| 01_18.txt | AC | 102 ms | 33604 KiB |
| 01_19.txt | AC | 60 ms | 12292 KiB |
| 01_20.txt | AC | 100 ms | 33548 KiB |
| 01_21.txt | AC | 61 ms | 11884 KiB |
| 01_22.txt | AC | 100 ms | 33588 KiB |
| 02_01.txt | AC | 198 ms | 45792 KiB |
| 02_02.txt | AC | 181 ms | 45900 KiB |
| 02_03.txt | AC | 174 ms | 45908 KiB |
| 02_04.txt | AC | 172 ms | 45888 KiB |
| 02_05.txt | AC | 177 ms | 45952 KiB |
| 02_06.txt | AC | 178 ms | 45792 KiB |
| 03_1.txt | AC | 9 ms | 8524 KiB |
| 03_2.txt | AC | 8 ms | 8576 KiB |
| 03_3.txt | AC | 8 ms | 8532 KiB |
| 04_1.txt | AC | 153 ms | 33420 KiB |
| 04_2.txt | AC | 151 ms | 33412 KiB |