けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

AtCoder ABC 058 B - ∵∴∵ (7Q, 灰色, 200 点)

2 つの文字列の長さが等しかったり、異なったりするのが少しイヤだが、難しくはない。

問題概要

文字列  O, E が与えられる。 |O| = |E| または  |O| = |E| + 1 である。

 O, E の各文字を先頭から順に交互にとって得られる文字列を出力せよ。

考えたこと

まずは、 i = 1, 2, \dots, |E| に対して、 O_{i} E_{i} を出力していけばよい。

最後に、もし  |O| =  |E| + 1 である場合には、 O の末尾の文字を出力すればよい。

コード

#include <bits/stdc++.h>
using namespace std;

int main() {
    string O, E;
    cin >> O >> E;
    for (int i = 0; i < E.size(); i++) cout << O[i] << E[i];
    if (O.size() > E.size()) cout << O.back();
    cout << endl;
}