結果
| 問題 |
No.2021 Not A but B
|
| コンテスト | |
| ユーザー |
cankusleep
|
| 提出日時 | 2022-07-29 22:04:08 |
| 言語 | C++17(clang) (17.0.6 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 2,469 bytes |
| コンパイル時間 | 4,776 ms |
| コンパイル使用メモリ | 164,404 KB |
| 実行使用メモリ | 6,948 KB |
| 最終ジャッジ日時 | 2024-07-20 22:34:39 |
| 合計ジャッジ時間 | 6,370 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 23 WA * 3 |
ソースコード
#include <bits/stdc++.h>
#define LOCAL
using namespace std;
using ll = long long;
// const int mod = 998244353;
// const int mod = 1000000000 + 7;
#define mem(a, b) memset(a, b, sizeof(a))
#define REP(i, a) for (int i = 0; i < a; ++i)
#define FOR(i, a, b) for (int i = a; i < b; ++i)
#define ALL(a) a.begin(), a.end()
inline void quickread() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
cout << fixed << setprecision(10);
}
inline void print_vector(vector<int> &A){
for (auto&& x : A){
cout << x << " ";
}
cout << endl;
}
inline void print_vector(vector<ll> &A){
for (auto&& x : A){
cout << x << " ";
}
cout << endl;
}
inline void print_array(const int A[], int n) {
REP(i, n) {
if (i < n - 1) {
cout << A[i] << " ";
} else {
cout << A[i] << endl;
}
}
}
ll gcd(ll x, ll y) {
return (y == 0 ? x : gcd(y, x % y));
}
ll lcm(ll x, ll y) {
return x * y / gcd(x, y);
}
#ifdef LOCAL
#define trace(...) __f(#__VA_ARGS__, __VA_ARGS__)
#else
#define trace(...) 42
#endif
template <typename Arg1>
void __f(const char* name, Arg1&& arg1){
cerr << name << ": " << arg1 << endl;
}
template <typename Arg1, typename... Args>
void __f(const char* names, Arg1&& arg1, Args&&... args){
const char* comma = strchr(names + 1, ',');
cerr.write(names, comma - names) << ": " << arg1 << " |";
__f(comma + 1, args...);
}
vector<int> prime{1};
void solve() {
int n;
cin >> n;
string s;
cin >> s;
int res = 0;
int cur = 0;
char pre = ' ';
bool start = true;
bool find = false;
for (auto c : s) {
if (c == 'A') {
if (pre == 'A') cur++;
else cur = 1;
pre = 'A';
} else {
if (pre == 'A') {
if (start) {
res += cur;
} else {
if (cur == 1) res++;
else res += (cur + 1);
}
}
if (pre == 'B') {
find = true;
}
pre = 'B';
cur = 0;
start = false;
}
}
if (cur > 0) {
res += cur;
}
cout << res + find << endl;
}
int main() {
quickread();
int t = 1;
// bool multi = false;
// if (multi) cin >> t;
// else t = 1;
for (int _ = 0; _ < t; _++) {
solve();
}
return 0;
}
cankusleep