C++の練習を兼ねて, AtCoder Regular Contest 145 の 問題A (AB Palindrome) を解いてみた.
■感想.
1. 問題Aは, 方針が見えなかったので, 解説を参考に, AC版に到達出来たと思う.
2. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.
本家のサイト AtCoder Regular Contest 145 解説 の 各リンク を ご覧下さい.
■C++版プログラム(問題A/AC版).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
// 解き直し. // https://atcoder.jp/contests/arc145/editorial/4224 // C++(GCC 9.2.1) #include <bits/stdc++.h> using namespace std; #define repex(i, a, b, c) for(int i = a; i < b; i += c) #define repx(i, a, b) repex(i, a, b, 1) #define rep(i, n) repx(i, 0, n) #define repr(i, a, b) for(int i = a; i >= b; i--) int main(){ // 1. 入力情報. int N; char c[202020]; scanf("%d %s", &N, c); string s(c); // 2. 判定. bool ok = true; if(s.front() == 'A' && s.back() == 'B') ok = false; if(s == "BA") ok = false; // 3. 出力. printf("%s\n", ok ? "Yes" : "No"); return 0; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
[入力例] 3 BBA [出力例] Yes ※AtCoderのテストケースより [入力例] 4 ABAB [出力例] No ※AtCoderのテストケースより [入力例] 5 ABBBA [出力例] Yes [入力例] 24 BBABABABBBAABBABBBAAAAAA [出力例] Yes [入力例] 50 ABBABBBAABBBBABABABBABBAABAABABBAAABABBABABABBBABA [出力例] Yes [入力例] 100 BAAABAAAABBAAABABBABBABAAAABABAABBBBABABBABBABBAABABBABBBAAAABAAABBBBAAAABAABABBBBABAABAABBBAABBABAB [出力例] Yes |
■参照サイト
AtCoder Regular Contest 145