Official

A - QUEN Editorial by tsutaj


この問題を解くには、

  • \(S\) に含まれる文字 \(x\) を前から順に見ていき、
  • それが \(c\) と一致しているかどうかを判定し、判定結果に応じて処理を変える

ことが必要になります。

\(S\) に含まれる文字を前から順に見ていくのはループ処理で可能です。また、 \(c\) と一致しているかどうかの判定には条件分岐(if 文など)が利用できます。

全体の計算量は \(O(|S|)\) です。

実装例 (C++)

#include <iostream>
#include <string>
using namespace std;

int main() {
    // 文字列の入力を受け取る
    string s; cin >> s;
    // 文字の入力を受け取る
    char c; cin >> c;
    // s に含まれる文字を前から順に見る
    for(auto x : s) {
        // c と一致している場合は 2 回出力、そうでなければ 1 回出力
        if(x == c) {
            cout << x << x;
        } else {
            cout << x;
        }
    }
    cout << endl;
    return 0;
}

posted:
last update: