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
AC × 3
AC × 36
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