結果
問題 | No.2276 I Want AC |
ユーザー |
![]() |
提出日時 | 2023-04-21 22:50:30 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 25 ms / 2,000 ms |
コード長 | 749 bytes |
コンパイル時間 | 1,147 ms |
コンパイル使用メモリ | 116,216 KB |
最終ジャッジ日時 | 2025-02-12 12:21:04 |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 56 |
ソースコード
#include <algorithm> #include <cassert> #include <cstdio> #include <cmath> #include <deque> #include <iostream> #include <map> #include <unordered_set> #include <unordered_map> #include <vector> #include <set> using namespace::std; int main() { ios::sync_with_stdio(false); int n; string s; cin >> n >> s; long long best = 0; unordered_map<char, long long> t; for (char x : s) { if (x == 'C' || x == '?') best += t['A']; ++t[x]; } long long b = best; unordered_map<char, long long> c; for (char x : s) { if (x == '?') { b -= c['A'] + c['?']; b += (t['C'] - c['C']) + (t['?'] - c['?'] - 1); } best = max(b, best); ++c[x]; } cout << best << endl; return 0; }