結果

問題 No.2419 MMA文字列2
ユーザー MM
提出日時 2023-08-12 13:54:02
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 9 ms / 2,000 ms
コード長 455 bytes
コンパイル時間 1,756 ms
コンパイル使用メモリ 171,220 KB
実行使用メモリ 6,336 KB
最終ジャッジ日時 2024-11-19 16:33:49
合計ジャッジ時間 2,870 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 30
権限があれば一括ダウンロードができます

ソースコード

diff #

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
int main(){
	string S; cin >> S;
	int N = S.size();
	vector<vector<int>> A(26);
	vector<int> inv(N),banme(N);
	for(int i = 0; i < N; i++){
		int c = S[i] - 'A';
		A[c].push_back(i);
		inv[i] = c;
		banme[i] = A[c].size();
	}
	ll ans = 0;
	for(int i = 0; i < N; i++){
		ll fr = banme[i] - 1;
		ll bk = N - 1 - i - (A[inv[i]].size() - banme[i]);
		ans += fr * bk;
	}
	cout << ans << endl;
}
0