結果
問題 | No.2629 A replace B replace C |
ユーザー | Today03 |
提出日時 | 2024-02-16 21:57:40 |
言語 | C++17(gcc12) (gcc 12.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 9 ms / 2,000 ms |
コード長 | 930 bytes |
コンパイル時間 | 1,804 ms |
コンパイル使用メモリ | 201,404 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-09-28 20:13:47 |
合計ジャッジ時間 | 3,744 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 5 |
other | AC * 61 |
ソースコード
#include <bits/stdc++.h> #ifdef LOCAL #include "./debug.cpp" #else #define debug(...) #define print_line #endif using namespace std; using ll = long long; int main() { int N; string S, T; cin >> N >> S >> T; int ab = 0, ac = 0, bc = 0; bool ok = true; for (int i = 0; i < N; i++) { if (S[i] != T[i]) { if (S[i] == 'A' && T[i] == 'B') { ab++; } else if (S[i] == 'A' && T[i] == 'C') { ac++; } else if (S[i] == 'B' && T[i] == 'C') { bc++; } else { ok = false; } } } auto F = [](auto&& F, int ab, int ac, int bc) -> bool { if (bc >= ac) { return bc == ab; } else if (bc > 0) { return F(F, ab, ac - bc, bc); } else { return false; } }; puts(ok && F(F, ab, ac, bc) ? "Yes" : "No"); }